Ошибка при импорте файла .ts в файл .js

#javascript #angular #typescript

#javascript #угловой #typescript

Вопрос:

У меня есть файлы .js, и я хотел бы интегрировать некоторые имеющиеся у нас файлы .ts. Когда я пытаюсь их импортировать, я получаю несколько странных ошибок.

Вот импорт в мой файл .js:

 import {AuthComponent} from './auth/auth.component';
  

Вот этот файл .ts ( auth.component.ts ):

 import {Component, OnInit} from '@angular/core';
import {ActivatedRoute, Params, Router} from '@angular/router';
import {UserService} from '../user/user.service'; //also a .ts file

@Component({
  selector: 'app-auth',
  templateUrl: './auth.component.html',
  styleUrls: ['./auth.component.scss']
})

export class AuthComponent implements OnInit {
  loadingConfig: any = {
    fullScreenBackdrop: true,
    backdropBackgroundColour: 'rgba(0,0,0,0.9)',
    primaryColour: '#b8860b'
  };
};
  

Когда я пытаюсь скомпилировать приложение, я получаю следующее

Error in ./app/auth/auth.component.ts
Module parse failed: /data/1/projects/myapp/src/app/auth/auth.component.ts Unexpected character '@' (7:0)
You may need an appropriate loader to handle this file type.

Строка 7 — это @Component

В моем webpack.config.js я добавил:

 resolve: {
   extensions: ['.ts', '.js','.json']
}
  

Я также создаю tsconfig.json в корне app …это имеет:

 "compilerOptions": {
  "target": "es6",
  "module": "commonjs",
  "allowJs": true,
  "checkJs": true
}
  

Я предполагаю, что могу импортировать файл .ts в файл .js… но, может быть, я что-то упускаю?
спасибо всем!

Ответ №1:

Это абсолютно нормально, Javascript не знает, что такое Typescript. Ваша ошибка возникает из-за декораторов, которые еще не реализованы в JS.

Комментарии:

1. хорошо … спасибо. похоже, решение заключается в их преобразовании. файлы .js в .ts или файлы .ts в .js?