我的项目中有一个全局/环境d.ts
文件,如下所示:
/// <reference types="moment" />
declare interface SomeSharedInternalType {
date: moment.Moment;
}
然而,编译器抱怨
无法找到命名空间'时刻'
显然,我不能使用import
因为这些声明必须保持环境,所以如何引用这些类型定义?
答案 0 :(得分:1)
import * as moment from 'moment'
只会导入类型定义,所以保持环境 - 它不会编译任何时刻JS
编辑稍微误解了这里的问题,所以为了清楚起见,这对于环境将defs拉入TS项目是正确的(这里的环境意味着它允许你使用类型,没有任何引用模块在编译的JS中被释放 - 但是,它并没有保持.d.ts
文件的环境(这里的环境意味着在其中声明的类型不需要由使用它们的模块导入,实质上使它们成为全局类型,文件本身通过tsconfig.json
配置包含在项目中)