[ts] 구조적 타이핑

Elen li·2023년 3월 31일
0

타입 스크립트의 타입 시스템은 구조적으로 타입화되어 있음.
매개변수는 변수가 특정 객체 타입으로 선언
-> 타입스크립트에 어떤 객체를 사용하든 해당 속성이 있어야 함.

//// 구조적 타이핑
type WithFirstName = {
    firstName: string;
}

type WithLastName = {
    lastName: string;
}

const hasBoth = {
    firstName: 1234,
    lastName: "Jasper"
}

let withFirstName: WithFirstName = hasBoth; // ERROR!
let withLastName: WithLastName = hasBoth; // OK
  • 자바스크립트는 덕 타입(duck typed)으로써 런타임 시점에 객체타입 판단 하지 않음.
  • 타입스크립트는 정적 시스템이 타입을 검사함

Duck typed

  • 오리가 있음
  • 오리처럼 주둥이가 넙죽함 + 오리처럼 꽥꽥거림 => 오리다! == 덕 타입
  • 오리처럼 주둥이가 넙죽함 + 꽥꽥거리는 것 못 들어봄 => 뭔지 모르겠는디?
profile
Android, Flutter 앱 개발자입니다.

0개의 댓글