Mic*_*haw 6 typescript webpack babeljs
我正在使用 Webpack 并@babel/typescript
编译混合的 TypeScript 和 JavaScript 项目。
我--noImplicitAny
用来鼓励利用打字。
我没有使用,--allowJs
因为我的项目太大了,它会阻塞 TypeScript 编译器,并且会破坏 Visual Studio 突出显示/智能感知。
对于无类型的 npm 模块,如果我没有时间添加类型,我会创建一个定义文件以将其类型显式设置为any
. 例如
例子.ts
import * as elemDataset from 'elem-dataset';
Run Code Online (Sandbox Code Playgroud)
elem-dataset.ts
declare module 'elem-dataset';
Run Code Online (Sandbox Code Playgroud)
这满足编译器。但是对于内部模块,我还没有转换为 TS ...
import * as example from './example2'; // Where example2 is example2.ts
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
找不到模块“./example2”的类型声明文件。C:/blah/blah/blah/example2.js 隐式具有“任何”类型。
我试过添加一个类型声明,就像在这个答案中一样。
示例2.d.ts
declare var example2: any;
declare module "example2" {
export = example2;
}
Run Code Online (Sandbox Code Playgroud)
但是后来我收到了这个错误:
文件 C:/blah/blah/blah/example2.d.ts 不是模块。
我也试着declare module '*';
每次这个答案,但我得到了同样的错误如上。
如何将内部 JS 文件的导入类型显式设置为 any?
事实证明这足以满足我的需求:
// @ts-ignore
import * as x from './example2';
Run Code Online (Sandbox Code Playgroud)
一开始我没有尝试,因为我认为该注释会禁用整个文件的类型检查。
但是@ts-ignore
在导入之前使用允许我强制对项目的其余部分进行类型检查,同时忽略单个 JavaScript 文件,直到我有时间转换它。
归档时间: |
|
查看次数: |
1443 次 |
最近记录: |