@ Call Signatures
type Add = (a:number, b:number) => number ;
const add :Add = (a,b) => a+b
@ Overloading
@ Polymorphism(다형성)
<T,M>(a: T[], b:M) : void
// generic사용 < > 안에 이름은 상관없음. 대문자로 시작하기만하면됨
}
const Print : Print = (a,b) => {
console.log(a)
console.log(b)
}
Print([1,2,3,4],'hello')
Print([true,false,true],1)
Print(['1','2','3','4'],[1,2,3])