728x90
반응형
다형성은 무엇인가?
다형성(polymorphism)이라는 단어는 원래 '여러 개의 형태를 갖는다'라는 의미이다. poly(하나 이상), morph(형태)가 합성된 단어로 '하나 이상의 형태'를 뜻한다
concrete type
number , boolean, string,void형 같은 타입
type SuperPrint = {
(arr:number[]):void
(arr:string[]):void
(arr:boolean[]):void
(arr: (number | boolean)[]):void
}
const superprint:SuperPrint = (arr) =>{
arr.forEach(i => console.log(i)
)
}
superprint([1,2,3,4])
superprint([true, false, false, true])
superprint(["a" , "h" , "c"])
superprint([ 1,2, true])
우리는 call signature 를 작성할 때, 여기 들어올 확실한 타입을 모를 때 generic을 사용한다. concreate type중 하나겠지만 그 조건들의 타입의 정의를 일일이 다 작성할 수 없다.
generic 사용법 / placeholder <T>
type SuperPrint = {
<TypePlaceholder>(arr:TypePlaceholder[]):void
}
일일 다 작성하는 것 대신 generic방법을 사용하면 훨씬 간단해진다. TypePlaceholder 대신 다른 단어도 사용 가능
타입스크립트가 이 값들을 보고 number타입을 유추하는 것이다. 다른 타입도 마찬가지이다.
generic에 type을 추가하고 싶다면 어떻게 해야할까?
아주 간단하다!
타입스크립트는 generic 을 처음 인식했을 때와 generic 의 순서를 기반으로 generic의 타입을 알게된다.
이런식으로 확장된 type도 가능하다! type 끼리 일종의 상속이 가능한 것이다!
generic은 다른 프로그래밍이나 ,프로그래머, 다른 패키지에서도 많이 사용돼서 우리가 쉽게 찾아볼 수 있다!
728x90
반응형
'Frontend > Typescript' 카테고리의 다른 글
노마드 코드 - 타입 스크립트로 블록체인 만들기 ([key:string] , interfaces - 타입과 인터페이스 비) (0) | 2023.10.18 |
---|---|
노마드 코드 - 타입 스크립트로 블록체인 만들기 (Classes) (0) | 2023.10.17 |
노마드 코드 - 타입 스크립트로 블록체인 만들기 (Call Signatures, Overloading) (0) | 2023.10.16 |
노마드 코드 - 타입스크립트로 블록체인 만들기 overview of typescript (0) | 2023.10.14 |
Typescript란? (1) | 2023.10.14 |