TypeScript에서 맵 또는 목록 유형 선언
맵과 목록은 모든 프로그래밍 언어에서 응용 프로그램 논리를 작성하는 데 사용되는 기본 데이터 구조입니다. 맵은 저장소에서 데이터 항목을 빠르게 검색하는 데 사용되는 반면 목록은 데이터 항목이 순차적으로 저장되는 데이터 구조입니다.
TypeScript 자체는 Map 또는 List 유형을 지원하지 않습니다. 그러나 TypeScript에 내장된 유형을 사용하여 필요한 유형을 생성하는 것은 매우 쉽습니다.
TypeScript에서 Record
및 Map
유형을 선언합니다.
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"]
표시된 기능 외에도 delete
및 clear
와 같은 다른 기능도 지원합니다. 이들은 각각 지도에서 단일 항목을 삭제하거나 지도에서 모든 항목을 지우는 데 사용됩니다.
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를 구성하는 기본 예를 보여줍니다. 일부 기본 기능을 사용하면 애플리케이션 논리에 필요한 모든 목록을 지원하도록 쉽게 확장할 수 있습니다.