angular - Vad betyder denna kodbit i TypeScript? public testOptions: "Undecided" | "Yes" | "No"="Undecided";


public testOptions: "Undecided" | "Yes" | "No" = "Undecided";
  1. Vad betyder den här kodbiten i TypeScript?
  2. Vilken typ av variabel är testOptions?
  3. Är testOptions en array, sträng eller något annat?
  4. Vad betyder "Nej"="Osäker"?
  5. Vad betyder pipesymbolen "|"?

Svar #1

Typer som separeras med en pipesymbol | kallas unionstyper och kan läsas som en ELLER-operation. Tecknet = i detta fall betecknar en tilldelning. Det betyder att egenskapen testOptions har standardvärdet "Undecided"

Din kod kan skrivas om som:

// Foo is of type string, but not just any string, only the literal values
// "Undecided", "Yes", or "No". Any other string won't match the type.
type Foo = "Undecided" | "Yes" | "No";

// Will error because "bar" is not one of "Undecided", "Yes", or "No"
const a: Foo = "bar";

// Will work
const b: Foo = "Undecided";

För att lära dig mer om de avancerade typerna i TypeScript, skulle jag starkt rekommendera dokumentationen om avancerade typer

Svar #2

I TypeScript definieras typen av en variabel som variableName: type.

Typ kan vara vad som helst.

  • Primitiva värden: sträng, nummer
  • Komplexa värden: MyClass1, IInterface1

Det finns också en union-operator (|) som används för att slå samman mer än 1 typ.

Så om du har en variabel som kan vara antingen ett tal eller en sträng, kommer den att definieras som variable: number | string.

Vad händer nu om du vill ha en variabel som endast kan ha specifika värden av en specifik typ?

public testOptions: "Oavgjort" | "Ja" | "Nej"="Oavgjort";

Så nu kan din testOptions ha "Undecided" | "Yes" | "No" och du kan ställa in dess standardvärde som "Undecided"

Relaterade artiklar