단진
대체로 맑음
단진
  • 분류 전체보기 (162)
    • 개발 (112)
      • 회고 (25)
      • 개발과정 (28)
      • 개념 (14)
      • JavaScript (11)
      • TypeScript (12)
      • 알고리즘 (4)
      • GitHub (4)
      • 오류 (9)
      • TMI (5)
    • 일상 (15)
      • 사진 및 여행 (6)
      • 책 소개 (4)
      • 기타 TMI (5)
    • IT (16)
      • 개념 (5)
      • 데이터베이스 (6)
      • 딥러닝 (1)
      • TMI (4)
    • TMI (4)
      • 법률 TMI (4)
    • 보안 (15)
      • Dreamhack (5)
      • Root Me (10)
hELLO · Designed By 정상우.
단진

대체로 맑음

8. 타입스크립트(TypeScript) - Concrete Type & Generic Type
개발/TypeScript

8. 타입스크립트(TypeScript) - Concrete Type & Generic Type

2022. 9. 4. 01:48

1. Concrete Type

→ 우리가 전부터 봐왔던 타입을 의미

→ number, boolean, string

 

 

2. Generic Type

→ 타입의 Placeholder 같은 것

→ Concrete type을 사용하는 대신 쓸 수 있음

→ Call Signature를 작성할 때, 들어올 확실한 타입을 모를 때 generic을 사용한다. 즉, TS가 타입을 추론하게 할 수 있다.

  1. TS에 generic을 사용하고 싶다고 알려준다
  2. <>를 사용하여 generic 이름을 붙인다 → 이름은 T 또는 V를 많이 사용한다
  3. 타입을 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
    '개발/TypeScript' 카테고리의 다른 글
    • 10. 타입스크립트(TypeScript) - Interface
    • 9. 타입스크립트(TypeScript) - Class
    • 7. 타입스크립트(TypeScript) - Overloading & Polymorphism (다형성)
    • 6. 타입스크립트(TypeScript) - 타입 & Call Signature
    단진
    단진

    티스토리툴바