[TS] 타입스크립트의 타입

mandarinduk·2021년 3월 17일
0

void

  • return 값이 없을 경우

  • 변수에 void를 선언하면 undefined 밖에 할당 못함

let a: void = undefined;

never

  • return 되지 않는 경우
  function throwError(message: string): never {
    // message -> server (log)
    throw new Error(message);

? : Optional parameter

  • 해당 변수를 Optional로 사용 가능
  function printName(firstName: string, lastName?: string) {
    console.log(firstName);
    console.log(lastName); // undefined
  }
  printName("Steve", "Jobs");
  printName("Steve");

Rest parameter

  function addNumbers(...numbers: number[]): number {
    return numbers.reduce((a, b) => a + b);
  }

  console.log(addNumbers(1, 2, "a")); // number가 아닌 타입은 오류 발생!
  console.log(addNumbers(1, 2, 3, 4));
  console.log(addNumbers(1, 2, 3, 4, 5));

Array

  const readOnlyArr: string[] = ["A", "B"]; // readonly 사용 가능
  const scores: Array<number> = [1, 2, 3]; // readonly 사용 불가능
  function printArray(readOnlyArr: readonly string[]) {
    readOnlyArr.push; // 변경 불가능(readonly)
  }

Tuple

  • 다른 타입들을 함께 사용할 수 있는 배열(가독성 떨어짐)
  • interface, type alias, class로 대체해서 사용하는 것이 좋음!
  let student: [string, number];
  student = ["name", 123];
  student[0]; // name, 가독성 떨어짐
  student[1]; // 123, 가독성 떨어짐

  const [name, age] = student; // 구조분해할당하여 사용하면 가독성 up!
profile
front-end 신입 개발자

0개의 댓글