Сужение типов с помощью typeof и проверки истинности
Используйте проверки typeof для сужения примитивных типов
«Сужение типов с помощью typeof и проверки истинности» — бесплатный урок TypeScript Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения TypeScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс TypeScript Academy содержит 4 уроков всего.
Добро пожаловать
Сужение с помощью typeof
function process(val: string | number) {
if (typeof val === 'string') {
return val.toUpperCase(); // val: string
}
return val.toFixed(2); // val: number
}Возвращаемые значения typeof
typeof 'hello' // 'string'
typeof 42 // 'number'
typeof true // 'boolean'
typeof null // 'object' (quirk!)
typeof undefined // 'undefined'Сужение по истинности
function greet(name: string | null) {
if (name) {
console.log('Hello, ' + name); // name: string
} else {
console.log('Hello, stranger');
}
}Ложные значения
Сужение с приведением к логическому типу
const items: (string | null)[] = ['a', null, 'b', null];
const strings = items.filter((x): x is string => x !== null);Отрицательные условия
function getLength(val: string | null): number {
if (!val) return 0; // early return narrows
return val.length; // val: string here
}Сочетание typeof с проверкой равенства
function accept(x: string | number | boolean) {
if (typeof x === 'string' || typeof x === 'number') {
console.log(x); // x: string | number
}
}typeof не может сузить тип до null
function check(x: string | null | 0) {
if (x === null) { /* x: null */ }
else if (x === 0) { /* x: 0 */ }
else { /* x: string */ }
}Сужение в циклах
Анализ потока управления
let x: string | number = 'hello';
// x: string
x = 42;
// x: numberБыстрая проверка
Повторение
Изучай TypeScript с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 101
- Уроки
- 352
Часто задаваемые вопросы
Урок «Сужение типов с помощью typeof и проверки истинности» бесплатный?
Да — полный текст урока «Сужение типов с помощью typeof и проверки истинности» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс TypeScript Academy, подпишись на CoddyKit PRO. Курс TypeScript Academy содержит 4 уроков всего.
Чему я научусь в уроке «Сужение типов с помощью typeof и проверки истинности»?
Используйте проверки typeof для сужения примитивных типов Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать TypeScript Academy?
Предыдущий опыт не требуется. TypeScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Сужение типов с помощью typeof и проверки истинности»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке TypeScript Academy?
Да. Каждый урок TypeScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Сужение типов с помощью typeof и проверки истинности
- Сужение типов с помощью instanceof и in
- Пользовательские функции проверки типов
- Проверка полноты с помощью never