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