TypeScript에서 enum을 확장하는 방법
extends
의 경우와 같이 interface
구성을 사용할 수 없습니다.enum MySuperEnum {
ONE,
TWO
}
enum MyMoreSuperEnum extends MySuperEnum // This is wrong
물론 열거형을 하나 더 만든 다음 공용체 유형을 만들 수 있습니다.
enum MySuperEnumExtender {
THREE
}
type MyUnionType = MySuperEnum | MySuperEnumExtender;
우리가 얻을 수 있는 것과 이 접근 방식이 좋지 않은 이유는 무엇입니까?
MyUnionType
는 유형이므로 소품을 호출하기 위해 enum처럼 사용할 수 없습니다.그러면 우리가 무엇을 할 수 있습니까?
우선, 우리는
const
와 함께 enum 구현의 또 다른 더 바람직한 방법을 사용해야 합니다. Why?// describe an enum object
const MySuperEnum = {
ONE: 'ONE',
TWO: 'TWO'
} as const
// create the MySuperEnum type
type MySuperEnum = typeof MySuperEnum[keyof typeof MySuperEnum];
as const
는 무엇입니까? 자세한 내용은 click를 참조하십시오.시원한! 이제
MySuperEnum
가 다른 방식으로 정의됩니다!MyMoreSuperEnum
로 확장될 새로운 MySuperEnum
를 생성할 때입니다.// describe an enum object
const MyMoreSuperEnum = {
...MySuperEnum,
THREE: 'THREE'
} as const
// create the MyMoreSuperEnum type
type MyMoreSuperEnum = typeof MyMoreSuperEnum[keyof typeof MyMoreSuperEnum];
이익. 이 트릭이 도움이 되길 바랍니다.
Reference
이 문제에 관하여(TypeScript에서 enum을 확장하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/egorovsa/how-to-extend-enum-in-typescript-cj4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)