TS 타입 별칭 사용하기, 배열, 기타 타입

HARIBO·2021년 12월 25일
0

타입 별칭

  • 타입 별칭은 블록 스코프에 적용되며, 블록 내에서 재정의 할 수 없다.
  • '|', '&'로 결합해 사용할 수 있다.
type Fruit = {
  color: string,
  name: string
}

const apple: Fruit = {
  color: 'red',
  name: 'apple'
}

//string 또는 number 타입을 갖는다.
type a = string | number

배열

  • 배열의 요소들이 같은 타입을 갖도록 노력해야 한다.
  • 빈 배열로 초기화하면 'any'로 취급하고, 이후 추가되는 요소에 따라 타입을 추론한다.
function ary(){
  const a = []; //a: any[]
  a.push('A');  
  a.push(1);
  //배열이 정의된 영역을 벗어남
  //배열을 반환하므로, 타입스크립트는 타입을 확장하지 않고 확정짓는다.
  return a;  //a: (string | number)[]
}

//function ary() : (string | number)[]
const array = ary();
array.push(true);  //'boolean' 형식의 인수는 'string | number' 형식의 매개 변수에 할당될 수 없습니다.
  • 읽기 전용 배열. push, splice등 사용 불가. concat등 새로운 배열을 반환하는 메소드를 사용해야 한다.
const c: readonly boolean[] = [true, false, false];
const d = c.concat(c, true);
c.push(true);  //'readonly boolean[]' 형식에 'push' 속성이 없습니다

튜플

  • 유한 배열. 선언할 때 타입을 명시해야 한다.
const a: [number, string, boolean?] = [0, 'A', false];
  • 최소 길이를 지정하기
const b: [number, string, ...boolean[]] = [0, 'A', true, false, true, false];

그 외 타입

  • undefined : 값이 정해지지 않음
  • null : 값이 없음
  • void : 아무것도 반환하지 않는 함수의 반환 타입
  • never : 절대 반환하지 않는 함수의 타입(계속 실행 되거나 예외를 발생)

출처
보리스 체르니, 타입스크립트 프로그래밍(2021)

0개의 댓글