Utility Type
Index Type
[]๋ฅผ ์ฌ์ฉํ๋ฉด index Type์ ๋ง๋ค ์ ์์ต๋๋ค. computed property์ฒ๋ผ ๊ณ์ฐ๋ ๊ฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
type Animal = {
name: string;
age: number;
gender: 'male' | 'female';
};
type Name = Animal['name']; // string
const text: Name = 'hello';Mapped Type
type์ key์ index type์ ์ฌ์ฉํ๋ฉด ์ ๋ฌ๋ฐ์ ํ์ ์ ๋ชจ๋ ์์๋ฅผ ํ๋ฐํด ์ํํฉ๋๋ค.
[P in keyof T]: ์ ๋ ๋ฆญ T์ ํค๋ฅผ ์ํ
T[P]: P๋ฅผ ํค๋ก ํ T์ value property
type Nullable<T> = { [P in keyof T]: T[P] | null };
const obj2: Nullable<Video> = {
title: 'hi',
author: null,
};
type Proxy<T> = {
get(): T;
set(value: T): void;
};
type Proxify<T> = {
[P in keyof T]: Proxy<T[P]>;
};Conditinal Type
์กฐ๊ฑด์ ๋ฌ์์ ํ์ ์ ์ง์ ํ ์ ์์ต๋๋ค. 3ํญ ์ฐ์ฌ์ ์ฌ์ฉ.
ReadOnly
์์ ์ด ๋ถ๊ฐ๋ฅํ ํ์ ์ ๋ง๋ฆ.
Partial Type
์ต์ ๋ ํ๋กํผํฐ๋ก ๋ง๋ฆ
Pick Type
์ ๋ฌ๋ฐ์ ํ์ ์ ์ผ๋ถ ์์๋ค๋ง ์ฌ์ฉ
Omit Type
pick type์ ๋ฐ๋๋ก ์ผ๋ถ ์์๋ฅผ ์ ์ธํ๊ณ ์ฌ์ฉ
Record
์ฒซ ๋ฒ์งธ ์ ๋ค๋ฆญ์ด ํค, ๋ ๋ฒ์งธ ์ ๋ค๋ฆญ์ด ๋ฐธ๋ฅ๊ฐ ๋์ด์ ์๋ก์ด ํ์ ์ ์กฐํฉํจ.
Capitalize, Uppercase, Lowercase
ํ์ ๊ฐ๋ค์ ์๋ฌธ๋ฒ ํ๊ธฐ๋ฒ์ ๋ฐ๊ฟ์ค. ๋ฐฑ๋จ์์ ๋ฐ์ดํฐ๋ฅผ ํต์ผ์ฑ์์ด ์ฃผ๊ฑฐ๋ ํ ๋ ๋ง์ถ๊ธฐ์ ์ฉ์ดํจ.
Last updated
Was this helpful?