hur man väljer ett element efter klassnamn i TypeScript?


Jag försöker designa en responsiv menyrad som kollapsar på små skärmar, men jag använder TypeScript. Finns det någon ledtråd om vad som motsvarar denna kod i TypeScript

function myFunction() {
document.getElementsByClassName("topnav")[0].classList.toggle("responsive");}

Jag ändrade till den här koden i TypeScript men den fungerar aldrig

myFunction(): void {
(<HTMLScriptElement[]><any>document.getElementsByClassName("topnav"))[0].classList.toggle("responsive");
}

Svar #1

Det finns ingen anledning att förändra något eftersom TypeScript är en superset av JavaScript, så även vanlig JavaScript kan vara TypeScript.

Med det sagt kan du lägga till några TypeScript-funktioner:

function myFunction(): boolean {
    let elements: NodeListOf<Element> = document.getElementsByClassName("topnav");
    let classes: DOMTokenList = elements[0].classList;
    return classes.toggle("responsive");
}

Men det finns ingen anledning att dela upp saker på det sättet, så du kan bara behålla din exakta kod, men kanske lägga till en returtyp i funktionssignaturen:

function myFunction(): void {
    document.getElementsByClassName("topnav")[0].classList.toggle("responsive");
}

Eller

function myFunction(): boolean {
    return document.getElementsByClassName("topnav")[0].classList.toggle("responsive");
}

Relaterade artiklar