Generic

김범주·2022년 7월 16일
0

typescript

목록 보기
15/23
post-thumbnail

generic

function 함수<MyType>(x: MyType[]) :MyType {
  return x[0];
}

let a = 함수<number>([4,2])
let b = 함수<string>(['kim', 'park'])

<>안에는 타입만 입력할 수 있음
함수'<'number'>'라고 쓰면 MyType이라는 변수에 number가 들어간 것

constraints

function 함수<MyType extends number>(x: MyType) {
  return x - 1
}

let a = 함수<number>(100) //잘됩니다

mytype안에 어떤 것이 들어갈지 모르기 때문에 return x-1을 적으면 에러가 남
extends를 통해 타입을 제한할 수 있음

interface lengthCheck {
  length : number
}
function 함수<MyType extends lengthCheck>(x: MyType) {
  return x.length
}

let a = 함수<string>('hello')  //가능
let a = 함수<number>(1234) //에러남

이런 식으로 커스텀 타입도 넣을 수 있다!

profile
개발꿈나무

0개의 댓글