在Typescript项目中,我需要导入一些在自己内部执行module.exports的旧js文件.
正如我导入:
import * as httpConnection from '...path...';
Run Code Online (Sandbox Code Playgroud)
我从编译器得到错误:
Could not find a declaration file for module '...path...'. '...path...' implicitly has an 'any' type.
Run Code Online (Sandbox Code Playgroud)
之后它工作正常,但我需要在控制台中避免此错误.
如何在不创建声明文件的情况下让编译器理解导入有任何类型?
提前感谢您的想法.
deK*_*joo 18
这意味着你应该输入这个模块。Typescript 对这个模块隐含地没有任何定义文件不满意。
如果它是一个外部公共模块,您可能只能使用 npm install @types/name_of_the_module
(有些模块现在甚至在 lib 中有它们的定义文件。所以只要 npm 安装模块就会给你 .d.ts 定义。但这里可能不是这种情况)
如果它是私有代码或者您找不到它,您可以.d.ts
在它旁边添加一个文件,理想情况下可以键入其所有功能。如果您愿意牺牲打字,因为您没有时间这样做,您可以any
在模块上使用以下显式类型.d.ts
declare var name_of_the_module: any;
declare module "name_of_the_module" {
export = name_of_the_module;
}
Run Code Online (Sandbox Code Playgroud)
编辑:
正如@stsloth 所指出的,对于 Typescript 2.6,您也可以通过// @ts-ignore
在导入上方添加一行来完全忽略错误。
您可以global.d.ts
在项目的根目录中创建一个名为:的文件并添加以下内容:
declare module '*';
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3189 次 |
最近记录: |