如何创建index.d.ts文件以在本地应用程序和DefinitelyTyped中使用,而无需更改源代码

时间:2019-08-14 19:46:37

标签: typescript typescript-typings

我从DefinitelyTyped文档和我的tsc编译器中看到不一致的意见。

我正在尝试创建一个非常简单的index.d.ts文件来键入库。如果我将所有类型都包装在

declare module "my-module" {
   // types are in here
}

然后一切正常,我可以使用import { MyClass } from "my-module"(仅在我告诉tsconfig.json显然要在types文件夹下查找我的类型之后)

但是,当我尝试运行DefinitelyTyped的dtlint以便将键入的内容推送到@types范围时,它们会告诉我相反的情况:

https://github.com/Microsoft/dtslint/blob/master/docs/no-single-declare-module.md

基本上,他们希望所有类型都平放在index.d.ts文件中。唯一的问题是,如果我在原始应用程序中执行此操作,则会从tsc编译器收到此错误:

TypeError: my_module_1.MyClass is not a constructor

甚至VS Code也抱怨说:

Try `npm install @types/my-module` if it exists or add a new declaration (.d.ts) file containing `declare module 'my-module';

所以现在我迷失了应该做的事情。在我的@types被DefinitelyTyped社区接受并投入生产之前,我需要使用本地index.d.ts文件,但是似乎很奇怪,必须根据文件的位置更改文件的内容。我一定做错了。

0 个答案:

没有答案