“만약 어떤 새가 오리처럼 걷고, 헤엄치고, 꽥꽥거리는 소리를 낸다면, 나는 그 새를 오리라고 부를 것이다.”
자바스크립트는 덕 타이핑을 사용한다. 덕타이핑이란 객체의 변수, 메서드의 집합이 객체의 타입을 결정하는 것을 말한다.
타입이 미리 선언되어 있지 않으므로 함수 선언부, 함수 실행부에 어떤 타입의 데이터를 집어 넣어도 실행된다.
구조적 타이핑은 구조적 타입 시스템(Structural Type System)이라고도 불린다. 실제 구조와 정의에 의해 결정되는 타입시스템의 한 종류이다.
참고로 명시적 선언이나 이름을 기반으로 하는 타입 시스템을 명목적 타입 시스템(Nominal Type System)이라 한다.
구조적 타이핑은 명확한 상속관계를 지향하기 보다 집합으로 포함한다는 개념을 지향한다.
같은 속성의 타입이 있는지 체크하기 때문에 중복되는 범위가 있다면 재사용 할 수 있고, 생산성 있는 코드를 쉽게 생산할 수 있다는 장점이 있다.
그러나 의도치않게 동일 타입을 가질 경우 의도하지 않았음에도 동일한 유형으로 간주될 수 있다.