I have noImplicitAny
set to true
对于我的 TypeScript 编译器。当我使用如下所示的导入时,它会抛出错误,因为我没有显式定义类型foo
多变的:
import * as foo from "bar";
我能够定义一个类型foo
使用 CommonJS require 语法:
const foo: FooType = require("bar");
有没有办法定义一个类型foo
使用import * as ...
syntax?
我相信你的意思是...
import * as foo: IFoo from "foo"
or
import foo : IFoo from "foo"
准确吗?
对此进行了讨论,但最终决定反对。 https://github.com/Microsoft/TypeScript/issues/2709
相反,建议您declare module 'bar'
并给它适当的打字。一旦完成,您将能够import * as foo from "bar"
通过正确的打字。
有关推荐方法的更多详细信息,请参阅此问题 https://github.com/Microsoft/TypeScript/issues/6615
一个潜在的例子:
无类型.d.ts
declare module "bar" {
const foo:IFoo;
export = foo;
}
tsconfig.json
{
"compilerOptions": {
...
},
"include": [
"untyped.d.ts",
"src/**/*.ts",
"src/**/*.tsx"
]
}
名称“untyped.d.ts”在这里没有真正的含义,我个人只是将它用作我个人项目中非类型化模块的总称。请随意命名它,只要您觉得合适即可。
附注您还可以选择使用files
数组属性而不是include
为此,但我倾向于不打扰,因为files
不尊重exclude
财产,这让一些人感到困惑。有关详细信息,请参阅文档。 https://www.typescriptlang.org/docs/handbook/tsconfig-json.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)