TypeScript에서 맵 또는 목록 유형 선언

Shuvayan Ghosh Dastidar 2023년6월21일
  1. TypeScript에서 RecordMap 유형을 선언합니다.
  2. TypeScript에서 목록 유형 선언
TypeScript에서 맵 또는 목록 유형 선언

맵과 목록은 모든 프로그래밍 언어에서 응용 프로그램 논리를 작성하는 데 사용되는 기본 데이터 구조입니다. 맵은 저장소에서 데이터 항목을 빠르게 검색하는 데 사용되는 반면 목록은 데이터 항목이 순차적으로 저장되는 데이터 구조입니다.

TypeScript 자체는 Map 또는 List 유형을 지원하지 않습니다. 그러나 TypeScript에 내장된 유형을 사용하여 필요한 유형을 생성하는 것은 매우 쉽습니다.

TypeScript에서 RecordMap 유형을 선언합니다.

TypeScript는 키-값 쌍이 있는 맵 유형을 지원할 수 있고 다양한 유형의 맵을 지원하기 위한 일반 유형이 있는 레코드 유형을 도입했습니다.

보다 구체적으로 Record<K,V>는 객체가 K 유형의 키만 허용하고 키에 해당하는 값이 V 유형이어야 함을 나타냅니다.

key of Record<K,V>는 유형으로 K를 생성하고 Record<K,V>[K]는 V와 동일합니다. Record 유형은 { [ 키 : K] : V }.

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

따라서 일반 유형을 사용하면 TypeScript에서 Map 또는 Record 유형에 대해 여러 유형을 가질 수 있습니다. 컴파일 후 다음 유형의 개체는 JavaScript에서 단순 개체가 됩니다.

유형이 지정된 개체와 별도로 기본 Javascript에는 새 Map 인스턴스를 초기화할 수 있는 Map 기능이 있습니다. 그것은 그것과 관련된 지원 기능을 상당히 가지고 있습니다.

다음 코드 세그먼트는 Map 함수를 사용하여 새 Map 객체를 초기화하는 방법을 보여줍니다.

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);

출력:

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

표시된 기능 외에도 deleteclear와 같은 다른 기능도 지원합니다. 이들은 각각 지도에서 단일 항목을 삭제하거나 지도에서 모든 항목을 지우는 데 사용됩니다.

TypeScript에서 목록 유형 선언

TypeScript에는 내장 목록 유형이 없습니다. 그러나 TypeScript는 연속 데이터 요소를 저장하기 위한 배열 유형을 제공합니다. 배열 유형을 사용하여 목록 데이터 구조 ADT를 쉽게 생성할 수 있습니다.

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());

출력:

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

위는 목록 ADT를 구성하는 기본 예를 보여줍니다. 일부 기본 기능을 사용하면 애플리케이션 논리에 필요한 모든 목록을 지원하도록 쉽게 확장할 수 있습니다.

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

관련 문장 - TypeScript Map