我希望每个变量在声明时都必须具有显式类型。我应该如何配置eslint?
const a = 10; // Error: Variable a does not explicitly specify a type const b:number = 10; // Right!
jljoyd4f1#
我不认为这有什么规则。另一方面,对于精确的逆运算有一个规则。强制不要对推断的类型no-inferable-type使用类型声明。您可以看到包含所有规则here的列表。
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规则的详细信息
2条答案
按热度按时间jljoyd4f1#
我不认为这有什么规则。
另一方面,对于精确的逆运算有一个规则。强制不要对推断的类型no-inferable-type使用类型声明。
您可以看到包含所有规则here的列表。
93ze6v8z2#
您可以在. eslintrc.json中执行以下操作:
来自no-inferrable-types上的文档
TypeScript能够从参数、属性和变量的默认值或初始值推断其类型。无需使用显式的:初始化为布尔值、数字或字符串的构造之一上的类型注解。这样做会给代码增加不必要的冗长,使其更难阅读,并且在某些情况下会阻止TypeScript推断更具体的文本类型(例如10),而不是更通用的基元类型(例如number)
因此,您需要在设置typedef规则之前先关闭no-inferable-types规则,以实现您的目标。
了解有关typedef规则的详细信息