typescript eslint如何要求变量必须显式键入

bf1o4zei  于 2023-01-27  发布在  TypeScript
关注(0)|答案(2)|浏览(98)

我希望每个变量在声明时都必须具有显式类型。
我应该如何配置eslint?

const a = 10; // Error: Variable a does not explicitly specify a type

const b:number = 10; // Right!
jljoyd4f

jljoyd4f1#

我不认为这有什么规则。
另一方面,对于精确的逆运算有一个规则。强制不要对推断的类型no-inferable-type使用类型声明。
您可以看到包含所有规则here的列表。

93ze6v8z

93ze6v8z2#

您可以在. eslintrc.json中执行以下操作:

...
"@typescript-eslint/no-inferrable-types": 0,
"@typescript-eslint/typedef": [
    "warn",
    {
        "variableDeclaration": true
    }
]
...

来自no-inferrable-types上的文档
TypeScript能够从参数、属性和变量的默认值或初始值推断其类型。无需使用显式的:初始化为布尔值、数字或字符串的构造之一上的类型注解。这样做会给代码增加不必要的冗长,使其更难阅读,并且在某些情况下会阻止TypeScript推断更具体的文本类型(例如10),而不是更通用的基元类型(例如number)
因此,您需要在设置typedef规则之前先关闭no-inferable-types规则,以实现您的目标。
了解有关typedef规则的详细信息

相关问题