본문 바로가기
Programming Step/Typescript

typescript string literal 과 string enums의 차이

by eclipse7727 2022. 6. 29.

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

 

반응형

'Programming Step > Typescript' 카테고리의 다른 글

Index Signature, 제네릭 keyof  (0) 2022.06.29
typescript express --files 옵션  (0) 2021.12.17

댓글