TypeScript

Type alias(타입 변수)

농담농담 2022. 8. 15. 23:18
// Type Aliases (별칭)

type Coffee = { name: string, cost: number};

let 커피1: Coffee = { name: '아메리카노', cost: 4000};
let 커피2: { name: string, cost: number} = { name: '카페라떼', cost: 5000};

타입도 변수처럼 선언해서 쓰는 것. 위 처럼 object 타입도 저장 가능하다. 커피1은 선언한 타입변수를 사용한것.

커피2는 타입을 지정해준것.

type Animal = string | number | undefined;
let 동물 :Animal;

 

최근에 ES6 공부할 때 , 아래와 같은 상황을 봤는데 예상과 달리 타입스크립트에서도 막을 수 없다더라.

따라서 객체 내 값을 잠궈주려면 readonly를 사용한다.

readonly는 컴파일시 에러를 내는 것일 뿐 변환된 js 파일을 보면 바뀌어 있긴하다.

아마 Object.freeze + 'use strict'가 제일 철저한듯.

 

선언해놓은 타입으로 유니온타입도 가능하다.

 

type PositionX = { x: number };
type PositionY = { y: number };
type XandY = PositionX & PositionY
let 좌표 :XandY = { x : 1, y : 2 }

object 에 지정한 타입의 경우 위와 같은 방식으로 합치기도 가능하다.

 

 

타입 키워드는 재정의가 불가능 하다.