Programming Step/Typescript
typescript string literal 과 string enums의 차이
eclipse7727
2022. 6. 29. 14:40
literal 과 enum의 차이는 javascript로 변환했을 때 코드의 유무 입니다.
Typescripts Transpiler는 코드를 변환하는 동안 type 확인을 위해서만 사용하기 때문입니다.
다만 대용으로 const를 enum 앞에 붙여 const enum 형식으로 사용하면 타입 확인에만 사용할 수 있습니다.
typescript 예제 코드
// 리터럴 타입
type MyKeyType1 = 'foo' | 'bar' | 'baz';
// enum 타입
enum MyKeyType2 {
FOO = 'foo',
BAR = 'bar',
BAZ = 'baz'
}
// const를 사용한 enum 타입
const enum MyKeyType3 {
FOO = 'foo',
BAR = 'bar',
BAZ = 'baz'
}
var a : MyKeyType1 = "bar"
var b: MyKeyType2 = MyKeyType2.BAR
var c: MyKeyType3 = MyKeyType3.BAR
javascript로 변환했을때 결과
"use strict";
// or with a String Enum
var MyKeyType2;
(function (MyKeyType2) {
MyKeyType2["FOO"] = "foo";
MyKeyType2["BAR"] = "bar";
MyKeyType2["BAZ"] = "baz";
})(MyKeyType2 || (MyKeyType2 = {}));
var a = "bar";
var b = MyKeyType2.BAR;
var c = "bar" /* MyKeyType3.BAR */;
TS Playground - An online editor for exploring TypeScript and JavaScript
The Playground lets you write TypeScript or JavaScript online in a safe and sharable way.
www.typescriptlang.org
반응형