我有一个visual studio 2015项目使用angular2 2.0.0-rc.4,typescript 1.8.7和momentjs,当我尝试构建项目时,我得到了2个编译错误的moment.d.ts。我试过打字稿编译器避免编译该文件没有运气。
这是我的tsconfing.json:
{
"compilerOptions": {
"noImplicitAny": false,
"module": "system",
"moduleResolution": "node",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"noEmitOnError": false,
"removeComments": false,
"sourceMap": true,
"target": "es5",
"allowSyntheticDefaultImports": true
},
"exclude": [
"node_modules",
"typings",
"wwwroot"
]
}
我得到的错误:
C:/Projects/MyProject/src/MyProject/node_modules/moment/moment.d.ts(210,22): error TS1110: Type expected.
C:/Projects/MyProject/src/MyProject/node_modules/moment/moment.d.ts(218,52): error TS1005: ';' expected.
我在我的.ts中导入这样的时刻
import * as moment from 'moment';
以前有人遇到过这个问题吗?感谢。
答案 0 :(得分:0)
检查以确保您安装的Typescript和Moment版本兼容。
我正在运行typescript v 1.8.x并且安装了最新版本的时刻(在编写本文时为2.17.0)并且遇到了相同的错误。 Moment v2.17.0 was updated to be compatible with Typescript 2.0,并且有一些类型,类型脚本1.8.x无法识别,并抛出显示的类型错误。
您可以将typescript更新为2.0(这可能会破坏其他一些内容)或明确安装时刻v2.16.0
假设您使用npm:
npm install typescript@2.0 --save-dev
--- ---或
npm install moment@2.16.0 --save
注意:如果您降级版本,可能需要重新安装打字。我不仅在moment.d.ts
中而且在当前的打字文件中也遇到了类型错误。运行以下内容为我解决了这个问题。
typings install moment=npm:moment --save-dev