Вбудовані утилітарні типи TypeScript і ключові слова, що ходять з ними поруч, згруповані за завданням: переформувати об'єкт, відфільтрувати об'єднання, описати функцію, перетворити літеральний рядок і захопити типи зі значень. Кожен рядок показує тип і справжній аліас, який ви написали б власноруч.
Утилітарні типи — це узагальнені функції для типів: вони беруть один чи два типи і повертають новий, тож вам не доводиться виписувати кожну форму вручну. Вони сяють на похідних типах, коли джерело істини — інший тип або значення, і ви хочете, щоб ваші типи стежили за ним автоматично. Простіше керуватися правилом: породжуйте, а не дублюйте — змінили джерело, і похідний тип іде слідом.
Довідкова таблиця · 22 записи
Утилітарні типи TypeScriptExplained
22 of 22 rows
Форма об'єкта
T, у якого кожна властивість стала необов'язковою.
type Update = Partial<User>
T, у якого кожна властивість стала обов'язковою.
type Strict = Required<Opts>
T, у якого кожна властивість стала лише для читання.
type Frozen = Readonly<User>
T, у якого залишили лише ключі з K.
type Preview = Pick<User, "id" | "name">
T, у якого вилучили ключі з K.
type SafeUser = Omit<User, "password">
Об'єкт, чиї ключі — це K, а значення — V.
type Scores = Record<string, number>
Фільтрація об'єднань
Об'єднання U, з якого вилучено члени, що можна призначити до X.
type NoNull = Exclude<T, null>
Члени U, які можна призначити до X.
type OnlyStr = Extract<T, string>
T, з якого вилучено null і undefined.
type Def = NonNullable<T>
Типи функцій
Кортеж типів параметрів функції F.
type P = Parameters<typeof fn>
Тип, який повертає функція F.
type R = ReturnType<typeof fn>
Кортеж типів параметрів конструктора F.
type C = ConstructorParameters<typeof Date>
Тип екземпляра, який породжує конструктор F.
type D = InstanceType<typeof Date>
Тип, до якого Promise розв'язується, рекурсивно.
type Data = Awaited<Promise<User>>
Перетворення літеральних рядків
Літеральний рядок S у верхньому регістрі.
type A = Uppercase<"abc"> // "ABC"
Літеральний рядок S у нижньому регістрі.
type B = Lowercase<"ABC"> // "abc"
S із першим символом у верхньому регістрі.
type C = Capitalize<"abc"> // "Abc"
S із першим символом у нижньому регістрі.
type D = Uncapitalize<"Abc"> // "aBc"
Пов'язані ключові слова
Об'єднання ключів властивостей об'єктного типу T.
type K = keyof User
Тип значення, без повторного виписування.
type Config = typeof defaults
Захоплює тип усередині умовного типу для повторного використання.
type El<T> = T extends Array<infer I> ? I : never
Обирає тип X або Y залежно від того, чи можна T призначити до U.