๐ Exclude
์ ๋์ธ ํ์ ์์ ํน์ ํ์ ์ ์ ๊ฑฐํ ๋ ์ฌ์ฉํ๋ ์ ํธ๋ฆฌํฐ ํ์ .
์ ๋์ธ ํ์ ์ ์ฌ๋ฌ ํ์ ์ค ํ๋๊ฐ ๋ ์ ์๋ ๊ฐ์ ์๋ฏธํ๋ค.
type Fruit = 'apple' | 'banana' | 'orange'
type MyFruit = Exclude<Fruit, 'orange'> // 'apple' | 'banana'
MyFruit๋ orange๋ฅผ ์ ์ธํ apple๊ณผ banana๋ฅผ ํ์ ์ผ๋ก ๊ฐ์ง๋๋ค.
๐ Omit
๊ฐ์ฒด ํ์ ์์ ํน์ ์์ฑ์ ์ ๊ฑฐํ ์๋ก์ด ํ์ ์ ์์ฑํ๋ ์ ํธ๋ฆฌํฐ ํ์ .
type Person = {
name: string;
age: number;
email: string;
};
type PersonName = Omit<Person, 'age' | 'email'>; // { name: string }
PersonName์ age, email ์์ฑ์ด ์ ๊ฑฐ๋ { name: string } ํ์ ์ ๊ฐ์ง๋๋ค.
๐ Exclude
์ ๋์ธ ํ์ ์์ ํน์ ํ์ ์ ์ ๊ฑฐํ ๋ ์ฌ์ฉํ๋ ์ ํธ๋ฆฌํฐ ํ์ .
์ ๋์ธ ํ์ ์ ์ฌ๋ฌ ํ์ ์ค ํ๋๊ฐ ๋ ์ ์๋ ๊ฐ์ ์๋ฏธํ๋ค.
type Fruit = 'apple' | 'banana' | 'orange'
type MyFruit = Exclude<Fruit, 'orange'> // 'apple' | 'banana'
MyFruit๋ orange๋ฅผ ์ ์ธํ apple๊ณผ banana๋ฅผ ํ์ ์ผ๋ก ๊ฐ์ง๋๋ค.
๐ Omit
๊ฐ์ฒด ํ์ ์์ ํน์ ์์ฑ์ ์ ๊ฑฐํ ์๋ก์ด ํ์ ์ ์์ฑํ๋ ์ ํธ๋ฆฌํฐ ํ์ .
type Person = {
name: string;
age: number;
email: string;
};
type PersonName = Omit<Person, 'age' | 'email'>; // { name: string }
PersonName์ age, email ์์ฑ์ด ์ ๊ฑฐ๋ { name: string } ํ์ ์ ๊ฐ์ง๋๋ค.