我已经noImplicitAny设置true为我的TypeScript编译器.当我使用像下面这样的导入时,它会抛出一个错误,因为我没有明确定义foo变量的类型:
import * as foo from "bar";
我能够定义一个foo使用CommonJS require语法的类型:
const foo: FooType = require("bar");
有没有办法定义foo使用import * as ...语法的类型?
我相信你的意思是......
import * as foo: IFoo from "foo"
Run Code Online (Sandbox Code Playgroud)
要么
import foo : IFoo from "foo"
Run Code Online (Sandbox Code Playgroud)
那是准确的吗?
相反,建议您declare module 'bar'并给它适当的打字.一旦完成,您将能够import * as foo from "bar"正确打字.
一个潜在的例子:
untyped.d.ts
declare module "bar" {
const foo:IFoo;
export = foo;
}
Run Code Online (Sandbox Code Playgroud)
tsconfig.json
{
"compilerOptions": {
...
},
"include": [
"untyped.d.ts",
"src/**/*.ts",
"src/**/*.tsx"
]
}
Run Code Online (Sandbox Code Playgroud)
"untyped.d.ts"这个名字在这里没有任何实际意义,我个人用它作为我个人项目中无类型模块的收藏.随意给它起任何合适的名字.
ps你也可以选择使用files数组属性而不是include这个,但我倾向于不打扰因为files不尊重那些exclude让一些人感到困惑的属性.有关详细信息,请参阅文档.
| 归档时间: |
|
| 查看次数: |
5909 次 |
| 最近记录: |