typescript - Inaktivera regeln camelcase för identifierare i specifika gränssnitt


Jag använder @typescript-eslint-pluginet för att lägga till regler till min TypeScript-kod med eslint.

En av reglerna som jag har aktiverat är camelcase:

"@typescript-eslint/camelcase": ["error", { "properties": "always" }]

Det låter mig normalisera mina variabel- och gränssnittsnamn.

Problemet är att standard JSON-formatet använder snake_case-konventionen för att namnge sina identifierare. Så alla mina API-förfrågningar svar använder snake_case.

I det här fallet måste jag deklarera gränssnitt med snake_case på det här sättet:

interface UserResponse {
  id: number
  dark_mode: boolean
  status_code: string
}

Så min fråga är: Finns det ett sätt att inaktivera denna regel för identifierare som definieras i ett interface som slutar med Response? Så att det inte finns några lint-fel i mitt UserResponse-interface.

@typescript-eslint tillhandahåller ett intressant parameter allow som inaktiverar regeln för specifika namn som matchar ett regex:

/* @typescript-eslint/camelcase: ["error", {allow: ["Response$"]}] */

interface Foo_Bar_Response {
  ...
}

Här kommer lintverktyget inte att utlösa snake_case-formatet från Foo_Bar_Response eftersom det slutar med ordet Response.

Men här fungerar det bara för själva namnet på gränssnittet och inte för namnen på dessa underordnade identifierare.

Någon idé om hur vi kan få det här att fungera?

Svar #1

det är ett stängt ärende på github https://github.com/typescript-eslint/typescript-eslint/issues/2077 du kan försöka fixa i kodbasen vilket inte rekommenderas. du kan också försöka inaktivera med alternativen: baserat på användningsfallet av camelcase-variabler eller gränssnittsegenskaper i ditt projekt https://eslint.org/docs/rules/camelcase

Relaterade artiklar