TypeScript 레코드 유형의 작동 방식
혼란스럽게 들리겠지만 실제로 어떻게 작동하는지 살펴보겠습니다.
유틸리티 유형
레코드는 유틸리티 유형입니다. 즉, 특정 문제를 해결하기 위해 TypeScript에서 특별히 정의한 유형입니다.
Typescript 레코드 유형의 작동 방식
다음과 같은 데이터 세트가 있다고 가정합니다.
const myData = {
"123-123-123" : { firstName: "John", lastName: "Doe" },
"124-124-124" : { firstName: "Sarah", lastName: "Doe" },
"125-125-125" : { firstName: "Jane", lastName: "Smith" }
}
데이터 세트에는 문자열 유형인 키에 대한 ID가 있습니다. 모든 값은 형식이 동일합니다. 즉, firstName과 lastName이 있습니다.
이 데이터 구조에서 레코드는 사용하기에 가장 적합한 유틸리티 유형입니다. 다음과 같이 데이터 구조 유형을 정의할 수 있습니다.
type User = {
firstName: string,
lastName: string
}
const myData:Record<string, User> = {
"123-123-123" : { firstName: "John", lastName: "Doe" },
"124-124-124" : { firstName: "Sarah", lastName: "Doe" },
"125-125-125" : { firstName: "Jane", lastName: "Smith" }
}
레코드는
Record<K, T>
형식을 취합니다. 여기서 K
는 키의 유형이고 T
는 값의 유형입니다.위에서 우리는 값에 대해 새로운 유형의 User를 정의하고 키를 문자열 유형으로 설정했습니다.
레코드 유형 및 조합 유형
경우에 따라 미리 정의된 가능한 키 집합이 있는 객체를 가질 수 있습니다. 이는 API에서 호출할 때 특히 그렇습니다. 예를 들어:
const myData = {
"uk" : { firstName: "John", lastName: "Doe" },
"france" : { firstName: "Sarah", lastName: "Doe" },
"india" : { firstName: "Jane", lastName: "Smith" }
}
위의 데이터 세트에서 키는 영국, 프랑스 또는 인도의 세 가지 값만 될 수 있다고 가정해 보겠습니다. 이 경우 사용자에 대한 유형과 키에 대한 통합 유형을 정의할 수 있습니다.
type User = {
firstName: string,
lastName: string
}
type Country = "uk" | "france" | "india";
const myData:Record<Country, User> = {
"uk" : { firstName: "John", lastName: "Doe" },
"france" : { firstName: "Sarah", lastName: "Doe" },
"india" : { firstName: "Jane", lastName: "Smith" }
}
이 방법을 사용하면 값이 준수해야 하는 유형과 함께 키가 허용되는 값에 대한 엄격한 규칙을 적용할 수 있습니다.
Reference
이 문제에 관하여(TypeScript 레코드 유형의 작동 방식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/smpnjn/how-the-typescript-record-type-works-1f5m텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)