我有一个js项目,我使用vscode。对于类型检查,我使用//@ts-check
。一个依赖项thinky没有类型信息,但我找到了@emtypes/thinky(github-reo已删除(。
在vscode中,我得到一个提示,我应该用declare module 'thinky'
创建一个*.d.ts文件。这样做会删除错误,但只将thinky
定义为any
,这没有帮助。
如何从node_modules/@emtypes/thinky/index.d.ts导入自定义类型
搜索显示了许多如何将js项目导入ts项目的示例,但我需要另一种方法。我还发现,在ES6项目中可以使用自定义类型定义吗?,但这是关于为js项目创建类型,并且我需要为导入的js库导入自定义的类型。
我在这里找到了解决方案:https://github.com/microsoft/TypeScript-Handbook/blob/722bdbec8e887aae7924c1f0d3edca48b7424e5f/pages/Type%20Checking%20JavaScript%20Files.md#import-类型
在我使用thinky的文件中,我添加了:
/**
* @typedef { import('@emtypes/thinky').Thinky } thinky
*/
/** @type {thinky} */
let thinky