我正在尝试include a .d.ts file in my npm package my (non-TypeScript) library。
我的package.json
中有以下内容:
"typings": "./src/iter.d.ts",
但无论我放在./src/iter.d.ts
中,每当我尝试在Visual Studio中使用它时,我总会得到一个"找不到模块' iterjs'"消息。
要重现,请在VS中创建一个新的TypeScript应用程序(我使用2015 with TS 1.8.4),执行npm install iterjs
,并将以下内容添加到app.ts
:
import iter from 'iterjs';
我已经尝试修改iter.d.ts
的本地副本(在node_modules
下),迫切希望任何工作;我的本地副本目前只有以下内容:
export declare function bob(object: Object, property: string): boolean;
export default bob;
我可以验证Visual Studio是否正在查找并读取iter.d.ts
文件(每次VS打开app.ts
时,我都可以看到它在Process Monitor中被读取);但是,.d.ts
文件中有些东西显而易见。我已经阅读了大量的博客文章,阅读了手册,以及关于这个主题的六个TypeScript问题,并尝试了从.d.ts
文件中导出任何的大约20种不同方式,但VS总是给出相同的错误(找不到模块' iterjs')。
答案 0 :(得分:2)
NPM包中.d.ts
文件的节点式解析仅适用于适当外部模块格式的类型定义。您的存储库中的.d.ts
采用环境模块格式,要将其转换为正确的格式,请移除declare module "iter"
并为您要导出的每个符号添加前缀export declare
,哦,并替换{{1与export = iter
一起使用。您可以在https://github.com/Microsoft/TypeScript/wiki/Typings-for-npm-packages