我正在学习在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实现这一点?或者为什么我会收到意外的令牌@错误?
答案 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编译器中实现装饰器的方法