프론트엔드/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 방식을 사용한다.