我试图停止使用 TSD 在通过全局变量使用许多库的项目中获取类型定义(如果这很重要outFile
,则使用该选项tsconfig.json
)。特别是,它以这种方式使用 Moment 库。Moment 提供了自己的类型定义作为 NPM 包的一部分。但是,这些定义并未在全局范围内声明任何内容。请注意,moment
它既是类型的全局变量,moment.MomentStatic
又是类型命名空间。使用 NPM 包,我怎样才能扩大全局范围,使一切都开始工作,因为它现在与从 TSD 获得的旧类型定义一起工作?即,moment
应该在任何文件中全局可用,既可以作为变量,也可以作为类型命名空间。基本上,我想要的是这些方面的东西:
import * as _moment from 'moment';
declare global {
const moment: _moment.MomentStatic;
import moment = _moment;
}
这不编译:
[ts] Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.
[ts] Import declaration conflicts with local declaration of 'moment'
有解决方法吗?