Recent Posts
Recent Comments
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Today
Total
관리 메뉴

DH의 개발 공부로그

[TypeScript] 타입스크립트 Tuple, Undefined, any, unknown, void, never 본문

TypeScript

[TypeScript] 타입스크립트 Tuple, Undefined, any, unknown, void, never

DeveloperDH 2023. 2. 6. 22:41
728x90

TypeScript

타입스크립트


Tuple

Tuple은 array 생성시 사용합니다. 정해진 갯수의 요소를 가지는 배열을 생성하고
원하는 타입의 순서를 지정하여, 해당 위치에 해당 타입이 필요 합니다.

const array2 : [string, number, boolean] = ['shape', 1, true];

Undefined, Null

let un : undefined = undefined; // undefined는 선택적 타입
let nu : null = null;

Any

타입스크립트에서 Any는 어떠한 타입이든 허용을 하는 타입으로 특정 값으로 인하여
타입 검사 오류가 발생하는 것을 원하지 않을 때 사용할 수 있습니다.
즉 , 이말은 타입의 안정성이 지켜지지 않는 것이고 타입스크립트에서 빠져나온다고 볼 수도 있습니다.
그러므로 신중하게 사용해야 합니다.
타입이 지정되지 않은 값에 대하여 문맥으로부터 그 타입을 추론해낼 수 없다면,
기본으로 설정이 되는 타입값입니다.

const c : any[] = [1, 2, 3];
const d : any = true;
console.log(c + d); // 오류 없이 정상적으로 실행
// output> 1,2,3true

Unknown

Unknown알 수 없는, 모른다라는 단어의 뜻처럼 타입을 미리 알지 못할 때 사용됩니다.
Any와 동일하게 Unknown은 모든 값을 허용하지만, 할당된 값이 어떤 타입인지 모르기 때문에
함부로 프로퍼티에 접근하거나 연산등등 함부로 작업을 할 수 없습니다.
그래서 Any보다 더 안전합니다.
Unknown을 사용할 때는 type check가 필요합니다.

let data : unknown;
if (typeof data === 'number') {
  let sum = data + 1;
};
if (typeof data === 'string') {
  let a = data.toUpperCase();
};

Void

Void는 return 값을 반환하지 않는 함수의 리턴 타입으로 undefined를 반환합니다.

function hello1() : void {
  console.log('x')
}
// 보통 반환값이 없을때는 void 생략이 가능
function hello2() {
  console.log('x')
}

Never

Never은 항상 오류를 출력하거나 리턴 값을 절대로 내보내지 않음을 의미합니다.
반환 타입에서는 해당 함수가 예외를 발생시키거나, 프로그램 실행을 종료함을 의미하기도 합니다.

function error() : never {
  throw new Error("zzz")
}

function temp(name:string|number) {
  if (typeof name === "string"){
      name // type : string
  } else if (typeof name === "number"){
      name // type : number
  } else {
      name // type : never
      // 정상적으로 인자가 전달이 되면 마지막 else로 올 수가 없기 때문에 never
  }

 


참고

노마드 코더
TypeScript: JavaScript With Syntax For Types

728x90
Comments