//type도 ESM을 사용할 수 있다.
import {Atype, age} from './index10_1';
const aType:Atype = 'string aType' + age
//Generic : 함수를 쓸 때 Generic 함수를 만든다 (파라미터로 타입을 입력하는 함수)
const 제네릭함수 = <T>(x:T[]):T => { //타입이 파라미터처럼 된다.
return x[0]
}
const 제네릭1 = 제네릭함수<number>([4,2]);
const 제네릭2 = 제네릭함수<string>(['string', 'Hi'])
// 사용할 때 <타입> 이거 지정 안해도 잘 작동하긴 한다.
//Generic 타입에서 제한두기
interface LengthCheck{
length : number
}
const 제네릭함수2 = <T extends LengthCheck>(x : T)=>{ //customType, interface로도 확장 가능
return x.length
}
console.log(제네릭함수2<string[]>(['가나다']));
// console.log(제네릭함수2(1)); // .length가 number가 아니므로 사용 불가능하다.
'Frontend > TypeScript(완)' 카테고리의 다른 글
[TS] TS연습하기12 : array와 tuple, rest parameter (0) | 2023.04.13 |
---|---|
[TS] TS연습하기11 : React와 타입스크립트(TSX) (0) | 2023.04.13 |
[TS] TS연습하기9 (public, private, protected, static) (0) | 2023.04.12 |
[TS] TS연습하기8 (0) | 2023.04.12 |
[TS] TS연습하기7 (0) | 2023.04.12 |
댓글