프로그램 언어의 다형성은 그 프로그래밍 언어의 자료형 체계의 성질을 나타내는 것으로, 프로그램 언어의 각 요소들(상수, 변수, 식, 오브젝트, 함수, 메소드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질을 가리킨다. 반댓말은 단형성으로, 프로그램 언어의 각 요소가 한가지 형태만 가지는 성질을 가리킨다.
클래스에서 사용 시
class Animal <T,U>{
name:T
genterType:U
constructor(name:T, genderType:U){
this.name= name;
this.genderType = genderType
}
}
무조건 좋은 것이아니지만,(any를 사용하는 것과 같을 수 있지만) 꼭 필요한 경우들이 있다.
각자 다른 개념이지만 비슷한 점도 많고 다른 점도 있어 알아둘 것이 많다.
많이 사용되는 키워드
둘다 많이 사용되면서 또 비슷한 역할을 대체
하는 경우도 있다.
팀 & 개인의 규칙이나 선호도에 따라 사용이 다르다
interface는 중복선언 시에 선언 병합된다.
interface와 type Alias 모두 implements를 사용할 수 있다.
interface는 무조건 key value가 있어야한다.(객체위주로 만들 때 사용하기 좋다.)