无法在全局d.ts中引用@types定义?

时间:2017-12-04 14:58:34

标签: typescript

我的项目中有一个全局/环境d.ts文件,如下所示:

/// <reference types="moment" />

declare interface SomeSharedInternalType {
    date: moment.Moment;
}

然而,编译器抱怨

  

无法找到命名空间'时刻'

显然,我不能使用import因为这些声明必须保持环境,所以如何引用这些类型定义?

1 个答案:

答案 0 :(得分:1)

import * as moment from 'moment'

只会导入类型定义,所以保持环境 - 它不会编译任何时刻JS

编辑稍微误解了这里的问题,所以为了清楚起见,这对于环境将defs拉入TS项目是正确的(这里的环境意味着它允许你使用类型,没有任何引用模块在编译的JS中被释放 - 但是,它并没有保持.d.ts文件的环境(这里的环境意味着在其中声明的类型不需要由使用它们的模块导入,实质上使它们成为全局类型,文件本身通过tsconfig.json配置包含在项目中)