๐Ÿ’™ Type Challenges/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

 

๋ฐ˜์‘ํ˜•

'๐Ÿ’™ Type Challenges > 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