Deklarieren Sie Karten- oder Listentyp in TypeScript

  1. Deklarieren Sie Record und Map Geben Sie TypeScript ein
  2. Deklarieren Sie List Typ in TypeScript
Deklarieren Sie Karten- oder Listentyp in TypeScript

Abbildungen und Listen sind die grundlegenden Datenstrukturen, die in jeder Programmiersprache zum Schreiben von Anwendungslogik verwendet werden. Eine Karte wird verwendet, um Datenelemente schnell aus einem Speicher abzurufen, während eine Liste eine Datenstruktur ist, in der Datenelemente sequentiell gespeichert werden.

TypeScript allein unterstützt keine Map- oder List-Typen; Es ist jedoch sehr einfach, die erforderlichen Typen mit den integrierten Typen in TypeScript zu erstellen.

Deklarieren Sie Record und Map Geben Sie TypeScript ein

TypeScript hat den Typ Record eingeführt, der Kartentypen mit Schlüssel-Wert-Paaren unterstützen kann und über generische Typen zur Unterstützung von Karten verschiedener Typen verfügt.

Genauer gesagt bedeutet Record<K,V>, dass ein Objekt nur Schlüssel vom Typ K akzeptiert und die den Schlüsseln entsprechenden Werte vom Typ V sein sollten.

key of Record<K,V> würde K als Typ ergeben und Record<K,V>[K] ist äquivalent zu V. Der Record-Typ ist ein Alias für Indexsignaturen wie { [ Taste : K] : V }.

const colorMap : Record<string, string> = {
    'ylw' : 'yellow',
    'blk' : 'black',
    'bl' : 'blue'
};

Wenn wir also die generischen Typen verwenden, können wir mehrere Typen für den Map- oder Record-Typ in TypeScript haben. Nach der Kompilierung wird das folgende typisierte Objekt zu einem einfachen Objekt in JavaScript.

Nebst dem typisierten Objekt verfügt natives Javascript über die Map-Funktion, die eine neue Map-Instanz initialisieren kann. Es hat eine ganze Reihe von unterstützten Funktionen, die damit verbunden sind.

Das folgende Codesegment zeigt, wie die Funktion Map verwendet werden kann, um ein neues Map-Objekt zu initialisieren.

const colorMap = new Map<string, string>();
colorMap.set("ylw", "yellow");
colorMap.set("blk", "black");

colorMap.forEach( ( v, k , _) => {
    console.log( "key : " + k + ", value : " + v);
})

// keys
var keyList : string[] = [...colorMap.keys()];
console.log(keyList);
// values
var valueList : string[] = [...colorMap.values()];
console.log(valueList);

Ausgang:

"key : ylw, value : yellow"
"key : blk, value : black"
["ylw", "blk"]
["yellow", "black"]

Neben den gezeigten Funktionen unterstützt es auch andere Funktionen wie Löschen und Löschen. Diese werden zum Löschen eines einzelnen Eintrags aus der Karte bzw. zum Löschen aller Einträge aus der Karte verwendet.

Deklarieren Sie List Typ in TypeScript

In TypeScript gibt es keinen eingebauten Listentyp; TypeScript bietet jedoch den Typ Array zum Speichern zusammenhängender Datenelemente. Es ist einfach, eine Listendatenstruktur ADT mit dem Typ Array zu erstellen.

class List<T> {
    private items : Array<T>;

    constructor(n? : number, defaultValue? : T){
        if ( n === undefined) {
            this.items = [];
        } else {
            if ( n && defaultValue){
                this.items = Array(n).fill(defaultValue);
            } else {
                this.items = Array(n);
            }
        }
    }

    push(item : T){
        this.items.push(item);
    }

    pop(item : T){
        return this.items.pop();
    }

    get(index : number) : T | undefined {
        return this.items[index];
    }

    set( index : number, item : T){
        this.items[index] = item;
    }

    getItems() : Array<T> {
        return this.items;
    }

}

List.prototype.toString = function listToString(){
    return JSON.stringify(this.getItems());
}

var list : List<string> = new List(5, "default");
list.set(1, "second");
list.set(0, "first");

console.log(list.toString());

Ausgang:

"["first","second","default","default","default"]"

Das Obige zeigt ein grundlegendes Beispiel für den Aufbau einer Listen-ADT; Mit einigen grundlegenden Funktionen kann es leicht erweitert werden, um jede Liste zu unterstützen, die in der Anwendungslogik erforderlich ist.

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