如何定义导入变量类型

马特尼德里希

我已将TypeScript编译器noImplicitAny设置true为。当我使用如下所示的导入时,由于未明确定义foo变量的类型,因此会引发错误

import * as foo from "bar";

我能够定义foo使用CommonJS require语法的类型

const foo: FooType = require("bar");

有没有一种方法可以定义foo使用import * as ...语法的类型

帕斯

我相信你的意思是...

import * as foo: IFoo from "foo"

要么

import foo : IFoo from "foo"

准确吗?

讨论过,但最终决定反对。

相反,建议declare module 'bar'您输入正确的名称。完成后,您将可以进行import * as foo from "bar"正确的键入。

有关建议方法的更多详细信息,请参见此问题

一个潜在的例子:

无类型的

declare module "bar" {
    const foo:IFoo;
    export = foo;
}

tsconfig.json

{
    "compilerOptions": {
        ...
    },
    "include": [
        "untyped.d.ts",
        "src/**/*.ts",
        "src/**/*.tsx"
    ]
}

名称“ untyped.d.ts”在这里没有实际含义,我只是将其用作我个人项目中未类型化模块的统称。随便给它起个名字吧。

ps您还可以选择使用filesarray属性,而不是include为此使用,但我倾向于不打扰,因为files不尊重该exclude属性,这会使某些人感到困惑。有关详细信息,请参阅文档。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章