Пользовательские функции проверки типов
Пишите предикаты is для создания собственных средств проверки типов
«Пользовательские функции проверки типов» — бесплатный урок TypeScript Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения TypeScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс TypeScript Academy содержит 4 уроков всего.
Добро пожаловать
Тип возвращаемого значения-предиката is
function isString(val: unknown): val is string {
return typeof val === 'string';
}Использование защитника типа
function process(val: unknown) {
if (isString(val)) {
console.log(val.toUpperCase()); // val: string
}
}Защитник типа для интерфейсов
interface Cat { meow(): void }
interface Dog { bark(): void }
function isCat(pet: Cat | Dog): pet is Cat {
return 'meow' in pet;
}Защитники типов для сложных объектов
interface User { name: string; age: number; }
function isUser(val: unknown): val is User {
return (
typeof val === 'object' &&
val !== null &&
typeof (val as any).name === 'string' &&
typeof (val as any).age === 'number'
);
}Защитники типов и утверждения
Array.isArray как защитник типа
function flatten(val: string | string[]): string[] {
return Array.isArray(val) ? val : [val];
}Обобщённые защитники типов
function isNonNull<T>(val: T | null | undefined): val is T {
return val !== null && val !== undefined;
}
const values = [1, null, 2, undefined].filter(isNonNull);
// values: number[]Функции утверждений
function assertIsString(val: unknown): asserts val is string {
if (typeof val !== 'string') throw new TypeError('Not a string');
}
assertIsString(input);
console.log(input.toUpperCase()); // narrowed to stringОтветственность защитников типов
Защитники типов в filter и find
const mixed: (string | null)[] = ['a', null, 'b'];
const strings = mixed.filter((x): x is string => x !== null);
// strings: string[]Быстрая проверка
Повторение
Изучай TypeScript с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 101
- Уроки
- 352
Часто задаваемые вопросы
Урок «Пользовательские функции проверки типов» бесплатный?
Да — полный текст урока «Пользовательские функции проверки типов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс TypeScript Academy, подпишись на CoddyKit PRO. Курс TypeScript Academy содержит 4 уроков всего.
Чему я научусь в уроке «Пользовательские функции проверки типов»?
Пишите предикаты is для создания собственных средств проверки типов Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать TypeScript Academy?
Предыдущий опыт не требуется. TypeScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Пользовательские функции проверки типов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке TypeScript Academy?
Да. Каждый урок TypeScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Сужение типов с помощью typeof и проверки истинности
- Сужение типов с помощью instanceof и in
- Пользовательские функции проверки типов
- Проверка полноты с помощью never