我使用@typescript-eslint/naming-convention来强制使用变量名。
我设置了一个规则,默认情况下允许每个变量都是camelCase语法,但类和对象除外。
但是,当我使用带有导入函数的析构赋值时,我得到了将BarClass作为变量并应用camelCase规则而不是类规则的eslint错误:
变量名称
BarClass必须匹配下列格式之一: camelCase 12:11-12:19
有办法解决这个问题吗?我怎么知道那是一个类而不是变量呢?
class BarClass {
}
const geClass = async() => {
return { BarClass };
}
const bla = true;
(async () => {
const { BarClass } = await geClass();
})();eslint配置:
{
"rules": {
"@typescript-eslint/naming-convention": [
"error",
{
"selector": [
"default"
],
"format": [
"camelCase"
]
},
{
"selector": [
"class", "objectLiteralProperty"
],
"format": null
}
]
}
}发布于 2022-06-15 10:17:00
发布于 2022-06-15 14:54:08
const { BarClass } = await geClass();是同一件事
const BarClass = (await geClass()).BarClass;(这样看比较容易)。在这个语句中,标识符BarClass出现了两次:BarClass的第一次出现是变量名,第二次是属性名。ESLint抱怨你的变量不在骆驼的情况下,这是真的。您可以通过重命名变量以匹配规则约定来解决这个问题,但这最终会使您的代码变得不那么清晰:
const { BarClass: barClass } = await geClass();或等量
const barClass = (await geClass()).BarClass;恐怕您所使用的规则无法为具有类类型的变量设置异常,这将是首选的解决方案。
https://stackoverflow.com/questions/72629547
复制相似问题