javascript - Účel '@typescript-eslint/no-non-null-assertion' pri deaktivovaní tlačidla


V tomto bloku kódu, čo robí .value! a @typescript-eslint/no-non-null-assertion? Dokumentácia je pre mňa príliš abstraktná, aby som ju vedel spojiť s kontextom správania tohto tlačidla.

const submitButton = ref<HTMLButtonElement | null>(null);

  //Disable button
  /* eslint-disable  @typescript-eslint/no-non-null-assertion */
  submitButton.value!.disabled = true;

P.S. Len v programovaní môžeš povedať „no-non-null“ s vážnou tvárou.

Odpoveď č. 1

! je typescriptové vyhlásenie o nenulovosti. Hovorí TypeScriptu: „Viem, že to vyzerá, že value môže byť null, ale dôveruj mi, nie je to tak.“ To môže byť užitočné, ak vieš niečo, čo TypeScript nevie (v tomto prípade pravdepodobne vieš, že ref bude naplnený skôr, než sa tento kód spustí), ale v podstate to vypína kontrolu typov na tomto riadku, a tak môže náhodou zaviesť chyby.

Keďže tvrdenie o nenulovosti je rizikové, existuje lint pravidlo, ktoré môže byť použité na zakázanie ich používania. Keď je lint pravidlo povolené, označí tento riadok ako problém. Typická oprava by potom bola napísať kód na kontrolu, či hodnota nie je null, aby nebolo potrebné tvrdenie. Ale ak chcete, môžete eslint povedať, aby tento riadok nekontroloval, pomocou špeciálneho komentára, ako je /* eslint-disable @typescript-eslint/no-non-null-assertion */.

Takže v súhrne tieto riadky hovoria: "Hej TypeScript, nekontroluj toto. Hej ESLint, nekontroluj toto."

Súvisiace články