타입스크립트 1.4는 프로그램에 하나 또는 두개의 타입을 합칠 수 있는 능력을 줬다. union 타입은 여러 타입이 하나가 될 수 있는 값을 표현할 수 있는 강력한 방식이다. 두개 이상의 자료형이 union 타입을 의미하는 파이프 기호 ( | ) 를 써서 합쳐질 수 있다. 다른 말로, union 타입은 수직 바에 의해 나뉘어진 일련의 타입으로 쓰여진다.
문법
Type1|Type2|Type3
var val:string|number val = 12 console.log("numeric value of val "+val) val = "This is a string" console.log("string value of val "+val)
위 예에서 변수의 타입은 union이다. 변수가 숫자, 문자열을 변수의 값으로 가질 수 있다.
var val; val = 12; console.log("numeric value of val " + val); val = "This is a string"; console.log("string value of val " + val);
출력
numeric value of val 12 string value of val this is a string
union 타입과 함수 인자
function disp(name:string|string[]) { if(typeof name == "string") { console.log(name) } else { var i; for(i = 0;i<name.length;i++) { console.log(name[i]) } } } disp("mark") console.log("Printing names array....") disp(["Mark","Tom","Mary","John"])
disp()함수는 문자열 또는 문자열 배열 둘 다를 인수로 허용한다.
function disp(name) { if (typeof name == "string") { console.log(name); } else { var i; for (i = 0; i < name.length; i++) { console.log(name[i]); } } } disp("mark"); console.log("Printing names array...."); disp(["Mark", "Tom", "Mary", "John"]);
출력
Mark Printing names array…. Mark Tom Mary John
union 타입과 배열
union타입은 배열, 속성, 인터페이스에도 적용될 수 있다. 다음은 배열과 함께 union 타입을 사용하는 방법을 설명한다.
var arr:number[]|string[]; var i:number; arr = [1,2,4] console.log("**numeric array**") for(i = 0;i<arr.length;i++) { console.log(arr[i]) } arr = ["Mumbai","Pune","Delhi"] console.log("**string array**") for(i = 0;i<arr.length;i++) { console.log(arr[i]) }
프로그램은 배열을 선언한다. 배열은 숫자, 문자열을 둘 다 표현할 수 있다.
var arr; var i; arr = [1, 2, 4]; console.log("**numeric array**"); for (i = 0; i < arr.length; i++) { console.log(arr[i]); } arr = ["Mumbai", "Pune", "Delhi"]; console.log("**string array**"); for (i = 0; i < arr.length; i++) { console.log(arr[i]); }
출력
**numeric array** 1 2 4 **string array** Mumbai Pune Delhi
https://www.tutorialspoint.com/typescript/typescript_union.htm
'JS > TypeScript' 카테고리의 다른 글
타입스크립트 튜토리얼 class (0) | 2018.12.24 |
---|---|
타입스크립트 튜토리얼 인터페이스 interface (0) | 2018.12.24 |
타입스크립트 튜토리얼 tuple (0) | 2018.12.23 |
타입스크립트 튜토리얼 array (0) | 2018.12.22 |
타입스크립트 튜토리얼 split (0) | 2018.12.21 |