我找不到@type/{name}
我已安装的NodeJS包之一的TypeScript定义,所以我尝试为其编写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]扩充中无效的模块名称。模块'node-helper-lib'解析为'{project path} \ node_modules \ node-helper-lib \ index.js'下的未类型化模块,无法对其进行扩充。
因为该库是无类型的,所以应该允许我在其中添加类型吗?
更新:
我在用:
经过一番尝试和错误,我发现这augmentation
意味着“在与其他模块声明相同的文件中声明一个模块”。
因此,如果我们要为无类型的第三方JavaScript库编写定义文件,则该文件中必须只有一个declare module 'lib-name'
,并且'lib-name'必须与库名完全匹配(可以在其package.json中找到“名称”属性)。
另一方面,如果第三方库已经包含定义文件 .d.ts
,并且我们想扩展其功能,则可以将其他定义放入我们创建的另一个文件中。这称为augmenting
。
例如:
// These module declarations are in same file, given that each of them already has their own definition file.
declare module 'events' {
// Extended functionality
}
declare module 'querystring' {
// Extended functionality
}
declare module '...' { ... }
我将发现留在这里,以防万一有人有同样的问题。如果我错过了一些事情,请纠正我。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句