【发布时间】:2018-01-07 07:04:53
【问题描述】:
我正在使用 Moment.js 来处理我的 TypeScript 项目中的日期时间对象。我想定义一个对象类型,其键的值类型为Moment。
但是,当我将以下内容添加到全局定义文件 (test.d.ts) 时,在项目的任何地方都找不到该文件中的任何接口。
import { Moment } from 'moment';
interface Test {
date: Moment;
}
当我尝试在 .ts 或 .tsx 文件中使用该接口时,我收到以下 TypeScript 错误:
[at-loader] ./src/<examplefilename>.tsx:91:26
TS2304: Cannot find name 'Test'.
VSCode 的 TypeScript 错误检查和 TSLint 均未显示代码有任何问题。
如何从外部模块导入类型以在全局定义文件中使用?
【问题讨论】:
-
我会检查 tsconfig 文件。在编译器选项 - typeroots 你应该有 @types 路径和你的打字路径
-
@kimy82,我认为问题不存在。我可以在整个项目中很好地导入时刻,但我无法在我的项目的
.d.ts定义文件中导入它以在我的项目中定义使用Moment类型的全局类型。我的其余.d.ts文件无需配置即可找到,只要我不尝试导入外部类型即可工作。 -
你的
tsconfig.json项目中是否也包含了带有全局变量的d.ts文件? -
@MattBierner:是的。在我添加导入语句之前,可以在整个项目中访问该文件及其接口。此时编译器不再找到接口,我收到上面发布的错误。
标签: typescript momentjs typescript2.0