πŸ’™ Typescript/type-challenges

[TS] type-challenges: 43. Exclude

선달 2023. 7. 14. 22:10
λ°˜μ‘ν˜•

문제

Tμ—μ„œ U에 ν• λ‹Ήν•  수 μžˆλŠ” νƒ€μž…μ„ μ œμ™Έν•˜λŠ” λ‚΄μž₯ μ œλ„€λ¦­ Exclude<T, U>λ₯Ό 이λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  κ΅¬ν˜„ν•˜μ„Έμš”.

 

type Result = MyExclude<'a' | 'b' | 'c', 'a'> // 'b' | 'c'

 

풀이

νƒ€μž…μ΄ μ•„λ‹Œ λ‹¨μˆœ λ¬Έμ œμ˜€λ‹€κ³  μƒκ°ν•΄λ³΄μž

function MyExclude(T, U) {
	if(T === U) return;
	else return T;
}

이런 λŠλ‚Œμ΄λ‹€. T에 ν•΄λ‹Ήν•˜λŠ” νƒ€μž…λ“€μ€‘ U와 같은 νƒ€μž…μ΄ μžˆλ‹€λ©΄ 그건 λ°˜ν™˜ν•˜μ§€ μ•Šκ³ , 같지 μ•Šλ‹€λ©΄ λ°˜ν™˜ν•˜λŠ” λ‘œμ§μ΄λ‹€.

 

νƒ€μž…μŠ€ν¬λ¦½νŠΈμ—μ„œ ===에 ν•΄λ‹Ήν•˜λŠ” 뢀뢄은 extends둜 λŒ€μ²΄ κ°€λŠ₯ν•˜κ³ 

아무것도 λ°˜ν™˜ν•˜μ§€ μ•ŠλŠ” κ²½μš°λŠ” never μ΄λΌλŠ” νƒ€μž…μœΌλ‘œ μ“Έ 수 μžˆκ² λ‹€.

 

type MyExclude<T, U> = T extends U ? never : T;

 

좜처

https://github.com/type-challenges/type-challenges/blob/main/questions/00043-easy-exclude/README.ko.md

 

λ°˜μ‘ν˜•

'πŸ’™ Typescript > type-challenges' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[TS] type-challenges: 268 - If  (0) 2023.07.19
[TS] type-challenges: 189 - Awaited  (0) 2023.07.17
[TS] type-challenges: 18. Length of Tuple  (0) 2023.07.05
[TS] type-challenges: 14. First of Array  (0) 2023.07.04
[TS] type-challenges : 11. Tuple to Object  (0) 2023.07.03