我正在使用 Webpack 和@babel/typescript
编译混合 TypeScript 和 JavaScript 项目。
我在用着--noImplicitAny
鼓励利用打字。
我没有使用--allowJs
因为我的项目太大了,它会阻塞 TypeScript 编译器,并且破坏 Visual Studio 突出显示/智能感知。
对于未类型化的 npm 模块,如果我没有时间添加类型,我会创建一个定义文件来显式将其类型设置为any
。例如
示例.ts
import * as elemDataset from 'elem-dataset';
elem-dataset.ts
declare module 'elem-dataset';
这满足了编译器的要求。但对于内部模块我还没有转换为 TS...
import * as example from './example2'; // Where example2 is example2.ts
我收到此错误:
找不到模块“./example2”的类型声明文件。 C:/blah/blah/blah/example2.js 隐式具有“any”类型。
我尝试添加类型声明,例如这个答案.
example2.d.ts
declare var example2: any;
declare module "example2" {
export = example2;
}
但后来我得到这个错误:
文件 C:/blah/blah/blah/example2.d.ts 不是模块。
我也尝试过declare module '*';
per 这个答案,但我得到了与上面相同的错误。
如何将内部 JS 文件的导入类型显式设置为 any?