Angular 2 Typescript构建错误与moment.ds for moment.d.ts

时间:2016-08-06 23:40:10

标签: typescript angular visual-studio-2015 momentjs

我有一个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';

以前有人遇到过这个问题吗?感谢。

1 个答案:

答案 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