我找不到我安装的 NodeJS 包之一的 TypeScript 定义 @type/{name}
,所以我尝试为它编写一个 d.ts
文件, 并将文件放在 {project root}\typings
文件夹中。我就是这样做的:
// My source code: index.ts
import Helper from 'node-helper-lib';
// My definition: \typings\node-helper-lib.d.ts
declare....(something else)
declare module 'node-helper-lib' {
class Helper { ... }
export = Helper;
}
但是,Visual Studio Code 不断产生此错误,并在 declare module 'node-helper-lib'
下放置红线:
[ts] Invalid module name in augmentation. Module 'node-helper-lib' resolves to an untyped module at '{project path}\node_modules\node-helper-lib\index.js', which cannot be augmented.
因为库是无类型的,所以我应该被允许添加类型,这不是合法的吗?
更新:
我正在使用:
- TypeScript:2.1.4
- Visual Studio 代码:1.9.1
- Node JS:6.9.4
- Windows 10 x64
最佳答案
@Paleo 在@hirikarate 的回答中的评论中给出了实际的解决方案:
应在模块声明内声明导入。
例子:
declare module 'node-helper-lib' {
import * as SomeThirdParty from 'node-helper-lib';
interface Helper {
new(opt: SomeThirdParty.Options): SomeThirdParty.Type
}
export = Helper;
}
关于node.js - 在编写自定义 TypeScript 定义文件时出现错误 "Module ' name'resolves to an untyped module at...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42388217/