프론트엔드/JavaScript, TypeScript

Typescript와 Duck typing

정현우12 2023. 12. 11. 14:11

어떤 2개의 타입의 이름, 위치가 다르더라도 구조가 같다면 Typescript는 2개의 타입을 같은 타입으로 본다. (Duck typing)

type A = {
    a: string
}
type B = {
    a: string
}
let a: A = {a: 'aa'}
let b: B = {a: 'bb'}
a = b // 가능
b = a // 가능

정리

  • Typescript는 컴파일 단계에서 타입 검사를 하는데 이때 Duck typing 방식을 사용한다.

  • C#/java는 이름이 같은지까지 확인하는 nominal typing 방식을 사용한다.