将moment.js与打字稿和"模块":" amd"

时间:2017-01-17 10:21:29

标签: typescript momentjs amd

我试图使用typescript 2.1.5中的moment.js

我用npm安装了片刻:

npm install moment --save-dev

d.ts文件包含在moment.js中,因此无需通过@typings进行安装 但是当我编译我的项目时,我收到以下错误:

  

错误TS2307:无法找到模块'时刻'。

这是我为重现这个问题而进行的简单测试。

repro.ts文件

import * as moment from "moment";
const date = moment().format("YYYY");
console.log(date);

tsconfig.json文件:

{
    "compilerOptions": {
        "module": "amd"
    }
}

如果我编译:

.\node_modules\.bin\tsc

我收到错误。我注意到如果我的目标是commonjs模块("模块":" commonjs"在tsconfig中),编译就没问题了

如果我定位amd模块,使用时刻的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

您必须在"moduleResolution": "node"中将compilerOptions添加到tsconfig.json

如果省略,moduleResolution默认为classic,除非modulecommonjs,这是node_modules中找不到模块的原因。

此外,在将来的编译器版本中,它看起来像going to be fixed