정구리의 우주정복
[TypeScript] 내가 보려고 끄적 본문
반응형
내가 이해한거 바탕으로 적어본다
제네릭 사용하는 경우 : 다양한 타입들이 올 수 있는 경우에 사용한다
타입가드 사용하는 경우 : (is 사용하는거) 넓은 타입을 좁혀줄때 사용한다 ex) number | string 을 string 하나로 바꿔주고 싶다던지
extends 를 사용하는경우 : 부분집합임을 표현할 때 사용한다 ex )
filter<S extends T>(callback : (v: T) => v is S ) : S[];
S가 T의 부분집합임을 표현할 때 사용한다
interface Arr<T> {
forEach(callback : (item : T) => void):void;
map<S>(callback:(v : T) => S ):S[];
filter<S extends T>(callback : (v: T) => v is S ) : S[];
}
const aaa : Arr<number> = [1,2,3];
const bbb = aaa.map<number>((v) => v+1); //[2,3,4]
const ccc = aaa.map<string>((v) => v.toString()); //['2','3','4']
const ddd = aaa.map((v) => v%2 ===0); //[f,t,f] boolean
const eee = aaa.filter((v) : v is number => v%2 ===0); //[2] number[]
const fff : Arr<number | string> = [1,'2',3,'4',5];
const ggg = fff.filter((v) : v is string => typeof v === 'string'); //['2','4'] string[] //넓은 타입을 좁혀줄땐 is 를 쓴다
const hhh = fff.filter((v) : v is number => typeof v === 'number' );
반응형
'WEB DEVELOP > STUDY' 카테고리의 다른 글
[WEB] div 를 input 태그처럼 사용하기 (div contenteditable, contenteditable 커서 맨뒤로) (0) | 2023.03.21 |
---|---|
[Vue.js] 맥에 vue.js 설치하기, 권한 오류 해결하기 (2) | 2023.02.20 |
[PHP] for문 사용법 , count() 배열 길이 구하기,배열 요소 출력하기 (0) | 2020.07.11 |
Javascript 자주 쓰는 문서 객체 정리 (0) | 2019.03.06 |
Javascript NaN 인지 아닌지 체크 (isNaN()) (0) | 2019.03.04 |
Comments