@typescript-eslint/naming-convention
para hacer cumplir mis nombres de variables.
Establecí una regla que permite por defecto que cada variable sea sintaxis camelCase, excepto clase y objeto.
Pero cuando uso la asignación de desestructuración con la función de importación, obtuve un error de eslint que considera BarClass
como variable y aplica la regla de camelCase en lugar de la regla de clase:
El nombre de la variable
BarClass
debe coincidir con uno de los siguientes formatos: camelCase 12:11 - 12:19
¿Hay alguna manera de arreglar eso? ¿Cómo hago eslint para saber que es una clase y no una variable?
mecanografiado-eslint.io parque infantil
class BarClass { } const geClass = async() => { return { BarClass }; } const bla = true; (async () => { const { BarClass } = await geClass(); })();
configuración de eslint:
{ "rules": { "@typescript-eslint/naming-convention": [ "error", { "selector": [ "default" ], "format": [ "camelCase" ] }, { "selector": [ "class", "objectLiteralProperty" ], "format": null } ] } }
const { BarClass } = await geClass();
es lo mismo que
const BarClass = (await geClass()).BarClass;
(es más fácil verlo de esta manera). En esta declaración, el identificador BarClass
aparece dos veces: la primera aparición de BarClass
es un nombre de variable, la segunda es un nombre de propiedad. ESLint se queja de que su variable no está en el caso de camello, lo cual es cierto. Puede arreglar eso cambiando el nombre de la variable para que coincida con las convenciones de la regla, pero eso terminaría haciendo que su código sea menos claro:
const { BarClass: barClass } = await geClass();
o equivalente
const barClass = (await geClass()).BarClass;
Me temo que la regla que está utilizando no tiene forma de hacer excepciones para las variables con el tipo de una clase, que sería la solución preferida.