1. Concrete Type
→ 우리가 전부터 봐왔던 타입을 의미
→ number
, boolean
, string
2. Generic Type
→ 타입의 Placeholder 같은 것
→ Concrete type을 사용하는 대신 쓸 수 있음
→ Call Signature를 작성할 때, 들어올 확실한 타입을 모를 때 generic을 사용한다. 즉, TS가 타입을 추론하게 할 수 있다.
- TS에 generic을 사용하고 싶다고 알려준다
<>
를 사용하여 generic 이름을 붙인다 → 이름은T
또는V
를 많이 사용한다- 타입을 generic 이름으로 바꾼다
type SuperPrint = {
<GenericName> (arr: GenericName[]): void // 이름은 마음대로 설정할 수 있다
}
type SuperPrint2 = {
<T, M> (a: T[], b: M): T
}
- Generic Type을 사용하면 가능한 경우의 수를 일일이 작성하지 않아도 된다는 장점이 있다
type SuperPrint = {
<GenericName> (arr: GenericName[]): GenericName// 이름은 마음대로 설정할 수 있다
}
const superPrint: SuperPrint = (arr) => arr[0]
- 만약, 함수의 return 타입도 확실히 모르는 경우 return에
generic
을 사용하면 된다 generic
은 우리가 요구한 대로 Signature를 생성해줄 수 있는 도구라고 생각하면 됨
function superPrint<T>(a: T[]) {
return a[0]
} // 이와 같이 함수에 한번에 작성할 수 있다
type Player<E> = {
name: string,
extraInfo: E
}
type Extra = {
favFood: "apple"
}
type aPlayer = Player<Extra>
const a: aPlayer = {
name: "hello",
extraInfo: {
facFood: "apple"
}
}
// 이렇게 작성해도 된다
type A = Array<number>
let a: A = [1, 2, 3, 4]
// 이런 것도 가능
'개발 > TypeScript' 카테고리의 다른 글
10. 타입스크립트(TypeScript) - Interface (0) | 2022.09.28 |
---|---|
9. 타입스크립트(TypeScript) - Class (0) | 2022.09.22 |
7. 타입스크립트(TypeScript) - Overloading & Polymorphism (다형성) (0) | 2022.09.04 |
6. 타입스크립트(TypeScript) - 타입 & Call Signature (0) | 2022.09.04 |
5. 타입스크립트(TypeScript) - Readonly & Tuple (0) | 2022.09.04 |