我从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
文件,但是似乎很奇怪,必须根据文件的位置更改文件的内容。我一定做错了。