Front-end/Typesrcipt

Tyepscript - Union, any, unknown

Cuvely 2023. 4. 12. 11:03
728x90
반응형

Tyepscript Union

Tyepscript Union 이란 2가지 이상의 타입을 선언이 필요할때 선언할 수 있는타입이다.

선언 방법은 변수: (타입1 | 타입2) 로 선언할 수 있다.

let myName: (string | number) = 'kim';
let myAge: (string | number) = 27;

 

배열변수에서의 union type 을 선언하여 숫자 또는 문자열 배열 변수를 만들 수 있다.

let myNumArr: (string | number)[] = [1, 'zelord', 3]; // 숫자 or 문자열 배열 타입선언

 

배열 뿐만아니라 오브젝트변수에서도 union type 선언이 가능하다.

let myObject: { name: (string | number) } = { name: 'zelord' };
let myObject2: { name: (string | number) } = { name: 27 };
// 문자 or 숫자 타입이 들어갈 수 있다.

 

Any Type

Any type 이란 모든 자료형의 타입을 변수에 선언할 수 있도록 해준다.

let myAny: any;	// any 타입을 선언하면 모든 타입의 값을을 재선언 할 수 있다.
myAny = 27;	// number 타입 변수 재할당
myAny = 'zelord';	// string 타입 변수 재할당
myAny = null;	// null 타입 변수 재할당
myAny = true;	// boolean 타입 변수 재할당

any type은 타입을 해제할 때 사용하는 문법이기도 하다.

 

 

반응형

 

 

Unknown Type

Unknown Type 이란 모든 자료형의 타입을 선언할 수있도록 Any Type 과 유사하다.

Any type 보다 Unknown type 이 안전하다.

그 이유는 다른 타입의 변수에 any type을 할당하면 에러가 나타나지 않지만

unknown type을 할당하면 에러가 나타난다.

 

let myAny: any; // any type 선언
let myUnknow: unknown; // unknown type 선언

let temp :string = myAny;	// 타입이 any 라서 허용 가능
let temp :string = unknown; // 타입이 unknown 이라서 허용 불가능

 

또한 연산에 대해 에러표출 차이가 있다.

let myAny: any;
let myUnknow: unknown;

myAny - 1;	// 허용 가능
myUnknow - 1; // 허용 불가능 (에러)

 

728x90
반응형