home

infer

글 분류
small
키워드
typescript
생성일
2023/08/29 23:36
최근 수정일
2023/08/30 00:09
작성중
const str = `hello_world-friend`.replace( /(_|-)/g, (item) => { return `${item}${item}${item}` } } type MyType<T> = T extends infer R ? R : null;
TypeScript
복사
Conditional type 에서만 사용할 수 있는 키워드로 간단하게 말하면 찾은걸 그대로 사용하게 만들어주는 역할.
replace에서 2번째 파라미터인 함수의 item과 비슷함, 내가 만든걸 instanciate 후 사용하게 해주는 그것.

Conditional type

type result = true extends boolean ? 1 : 0 // 1
TypeScript
복사
타입의 true가 boolean일 경우 1
Conditional type은 삼항 연산자 밖에 없다. → switch 만들어조
const func = (check:boolean) => { return 1234; } type FuncResult = typeof func extends (...args:any) => any ? 1 : 0 // 1
TypeScript
복사
func가(extends) (…args:any) ⇒ any인 경우 타입은 1이다로 해석될 수 있음

Return type

type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;
TypeScript
복사
맨위의 .replace 메서드를 이용한 설명과 같이 infer는 값을 변수화 하는 키워드라 생각하면 된다.

참조