javascript - Förbjudet icke-null påståendefel i lint för document.getElementById()


Jag använder TypeScript, och jag har följande definition:

const contentElement = document.getElementById("contentId")!;

Där jag vet säkert att det relevanta elementet är definierat i HTML-filen med contendId.

Jag har kört eslint, och jag får följande fel:

Forbidden non-null assertion.

Så... Vad skulle vara det rätta sättet att hantera det här fallet? Jag tenderar att helt enkelt lägga till en undertryckningsvarning, eftersom de andra alternativen helt enkelt bara skulle öka komplexiteten. Men kanske förbiser jag en enkel lösning här, förutom att lägga till:

// eslint-disable-next-line @typescript-eslint/no-non-null-assertion

Svar #1

Förbjudet icke-null-assertion. är bara en lint-varning/fel eftersom ditt värde kan vara nullbart. Om du är säker på värdet kan du kasta det till den förväntade typen som nedan

const contentElement = document.getElementById("contentId") as HTMLElement