type ElementProps<K extends keyof HTMLElementTagNameMap> = & IProps<HTMLElementTagNameMap[K]> | {}
1.1.1 function 적용
interface Calc{ (num1:number, num2:number):number; } const add:Calc=function(a,b){ return a+b; } const minus:Calc=function(a,b){ return a-b; }
1.1.2 class 적용
type COLOR='WHITE'|'BLACK'|'RED'; interface Car{ color:COLOR, price:number, drive():void } class Kia implements Car{ color; price=100; constructor(color:COLOR){ this.color=color; } drive(){ console.log('kia run') } } const k5=new Kia('BLACK');