Erzwingen Typen für indizierte Member in TypeScript-Objekten

Shuvayan Ghosh Dastidar 30 Januar 2023
  1. Verwenden Sie zugeordnete Typen, um Typen für indizierte Elemente in TypeScript-Objekten zu erzwingen
  2. Verwenden Sie generische Typen mit zugeordneten Typen, um Typen für indizierte Elemente in TypeScript-Objekten zu erzwingen
  3. Verwenden Sie den Typ Record, um Typen für indizierte Mitglieder in TypeScript-Objekten zu erzwingen
Erzwingen Typen für indizierte Member in TypeScript-Objekten

TypeScript ist eine stark typisierte Sprache, und alle Konstrukte, die als Teil dieser Sprache verwendet werden, sind stark typisiert. Es gibt Konstrukte wie Schnittstellen oder Typen, die primitive und benutzerdefinierte Typen kombiniert sind.

Man kann sogar komplexe Typen wie Maps oder Indextypen haben, die in TypeScript unter der Kategorie zugeordnete Typen liegen. Dieses Tutorial zeigt, wie zugeordnete Typen in TypeScript verwendet werden können.

Verwenden Sie zugeordnete Typen, um Typen für indizierte Elemente in TypeScript-Objekten zu erzwingen

Zugeordnete Typen können Objekte mit einem festen Schema mit festen Typen für die Schlüssel und die Werte in einem Objekt in TypeScript darstellen. Sie basieren auf der Syntax für Indexsignaturen.

type NumberMapType = {
    [key : string] : number;
}

// then can be used as
const NumberMap : NumberMapType = {
    'one' : 1,
    'two' : 2,
    'three' : 3
}

Anders als beim Festlegen des Typs der Schlüssel eines Objekts können zugeordnete Typen verwendet werden, um den Typ aller Schlüssel in einem Objekt mithilfe von Indexsignaturen zu ändern.

interface Post {
    title : string;
    likes : number;
    content : string;
}

type PostAvailable = {
    [K in keyof Post] : boolean;
}

const postCondition : PostAvailable = {
    title : true,
    likes : true,
    content : false
}

Im Folgenden werden die Schlüssel der Schnittstelle Post verwendet und auf einen anderen Typ, Boolean, abgebildet.

Verwenden Sie generische Typen mit zugeordneten Typen, um Typen für indizierte Elemente in TypeScript-Objekten zu erzwingen

Zugeordnete Typen können auch zum Erstellen generischer typisierter Objekte verwendet werden. Generische Typen können verwendet werden, um Typen mit dynamischen Typen zu erstellen.

enum Colors {
    Red,
    Yellow,
    Black
}

type x = keyof typeof Colors;

type ColorMap<T> = {
    [K in keyof typeof Colors] : T;
}

const action : ColorMap<string> = {
    Black : 'Stop',
    Red : 'Danger',
    Yellow : 'Continue'
}

const ColorCode : ColorMap<Number> = {
    Black : 0,
    Red : 1,
    Yellow : 2
}

Im obigen Beispiel wurde die Aufzählung Colors im zugeordneten typisierten Objekt verwendet, und verschiedene Typen wurden entsprechend dem von ColorMap<T> unterstützten generischen Typ erzwungen.

Verwenden Sie den Typ Record, um Typen für indizierte Mitglieder in TypeScript-Objekten zu erzwingen

Der Typ Record ist ein integrierter Typ in TypeScript und kann verwendet werden, um Typen für Objekte in TypeScript zu erzwingen. Der Typ Record akzeptiert zwei Felder: die Typen für die Schlüssel und die Werte in einem Objekt.

Es kann als Karte angesehen werden, die in anderen Programmiersprachen zu finden ist.

const LogInfo : Record<string, string> = {
    'debug' : 'Debug message',
    'info' : 'Info message',
    'warn' : 'Warning message',
    'fatal' : 'Fatal error'
}

const message = LogInfo['debug'] + " : Hello world";
console.log(message);

Ausgabe:

Debug message : Hello world
Shuvayan Ghosh Dastidar avatar Shuvayan Ghosh Dastidar avatar

Shuvayan is a professional software developer with an avid interest in all kinds of technology and programming languages. He loves all kinds of problem solving and writing about his experiences.

LinkedIn Website

Verwandter Artikel - TypeScript Map