Typescript의 객체 인덱스 서명 키 유형에서 통합 유형을 만드는 방법은 무엇입니까?
6304 단어 typescript
개체
index signature
키로 공용체 유형을 만들려면 TypeScript에서 keyof
연산자 다음에 색인 서명 이름을 사용할 수 있습니다.TL;DR
// `Person` index signature
type Person = {
[key: string]: number;
};
// make union type from the `Person`
// index signature key type
type PersonKeys = keyof Person; // string | number
// use the `PersonKeys` union type on variables
const a: PersonKeys = "Hello"; // ✅ Valid.
const b: PersonKeys = 3; // ✅ Valid.
const c: PersonKeys = true; // ❌ Not Valid. Since it doesn't comply with `PersonKeys` union type
예를 들어, 키가
Person
유형이고 string
가 value
유형인 경우 number
라는 객체의 인덱스 서명이 있다고 가정해 보겠습니다.// Person index signature
type Person = {
[key: string]: number;
};
참고: TypeScript의
index signatures
에 대한 자세한 내용은 Which type to use for objects when properties are not known ahead of time in TypeScript?의 블로그를 참조하십시오.Person
라는 인덱스 서명을 정의했으므로 인덱스 서명 이름 뒤에 keyof
연산자를 사용하여 인덱스 서명 키 유형에서 통합 유형을 생성해 보겠습니다.이런식으로 할 수 있는데,
// `Person` index signature
type Person = {
[key: string]: number;
};
// make union type from the `Person`
// index signature key type
type PersonKeys = keyof Person; // string | number
위의 코드에서 볼 수 있듯이
PersonKeys
는 이제 string and number
두 유형으로 구성된 공용체 유형입니다.또한 인덱스 서명의 모든 키에 대해
string
유형만 사용했지만 공용체 유형이 string
및 number
유형으로 구성되어 있음을 알 수 있습니다. 이는 string
유형이 a이기 때문입니다. string
및 number
유형의 상위 집합입니다.이제 변수에
PersonKeys
공용체 유형을 사용하여 작동하는지 확인하겠습니다.이런식으로 할 수 있는데,
// `Person` index signature
type Person = {
[key: string]: number;
};
// make union type from the `Person`
// index signature key type
type PersonKeys = keyof Person; // string | number
// use the `PersonKeys` union type on variables
const a: PersonKeys = "Hello"; // ✅ Valid.
const b: PersonKeys = 3; // ✅ Valid.
const c: PersonKeys = true; // ❌ Not Valid. Since it doesn't comply with the `PersonKeys` union type
보시다시피 처음 2개의 변수는 공용체 유형
PersonKeys
을 만족하므로 모두 유효하고 마지막 변수는 공용체 유형PersonKeys
을 충족하지 않으므로 유효하지 않습니다.야 🥳! TypeScript의 객체 인덱스 서명 키 유형에서 통합 유형을 성공적으로 만들었습니다.
codesandbox 에 있는 위의 코드를 참조하세요.
그게 다야 😃!
😃 유용하셨다면 공유해 주세요.
Reference
이 문제에 관하여(Typescript의 객체 인덱스 서명 키 유형에서 통합 유형을 만드는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/melvin2016/how-to-make-a-union-type-from-an-object-index-signature-key-type-in-typescript-1klh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)