并非所有的typescript文件都使用atom-typescript编译为js

时间:2015-09-10 20:07:58

标签: typescript atom-editor angular

我正在学习在Angular2中构建路由的教程https://www.youtube.com/watch?t=10&v=ZsGRiHSaOxM它显示了使用.ts构建的部分页面,并且在每种情况下都是一个伴随的.js文件。当我更改它时,带有atom-typescript的我的Atom编辑器将我的app.ts文件编译为app.js,但是我在另一个目录中的部分页面不能编译,我能说清楚。

当文件是homePage.ts时,控制台错误是 - 找不到homePage.js当文件是homePage.js时,控制台错误是 - 意外令牌@在线(其中@Component是)。我有“compileOnSave”:在我的tsconfig中为true,该文件位于顶级项目目录中。

我尝试将文件中的fileGlob放在tsconfig中,如下所示

"filesGlob": [
    "./**/*.ts",
    "!./node_modules/**/*.ts"
],

没有任何改变。

我的compilerOptions是:

"compilerOptions": {
    "charset": " UTF-8",
    "declaration": false,
    "diagnostics": true,
    "emitDecoratorMetadata": true,
    "module": "commonjs",
    "noImplicitAny": false,
    "noLib": false,
    "removeComments": true,
    "sourceMap": true,
    "target": "es5",
    "version": true
},

我是否需要所有组件的.ts和.js文件,如果是这样,我如何使用atom-typescript实现这一点?或者为什么我会收到意外的令牌@错误?

1 个答案:

答案 0 :(得分:3)

  

或者为什么我会收到意外的令牌@错误

您需要将experimentalDecorators设置为true。所以:

"compilerOptions": {
    "charset": " UTF-8",
    "declaration": false,
    "diagnostics": true,
    "experimentalDecorators", true,
    "emitDecoratorMetadata": true,
    "module": "commonjs",
    "noImplicitAny": false,
    "noLib": false,
    "removeComments": true,
    "sourceMap": true,
    "target": "es5",
    "version": true
},

FWIW这就是在TypeScript编译器中实现装饰器的方法