tgoop.com/mefody_dev/375
Create:
Last Update:
Last Update:
Satisfies в TypeScript
Адам Ракис на примерах объясняет пользу ключевого слова satisfies
в TypeScript.
Если коротко, это что-то вроде assert
для типов. Представьте, что у вас есть тип с опциональным полем.
type Item = {
name: string;
description?: string;
};
function insertItems(items: Item[]) {}
insertItems(
backendItems.map(item => {
return {
name: item.item_name,
description_new: item.item_description,
};
})
);
В этом коде есть неприятный баг. TypeScript смотрит на типы и пытается их пересечь. Из-за опциональности поля
description
ошибки в коде нет с точки зрения типов. Но если дальше массив в рантайме передаётся с клиента на бэкенд, получим, вероятно, ошибку.Как словить эту ошибку вовремя? Помимо явного указания типов вообще везде, где только можно вписать тип, можно сделать так:
insertItems(
backendItems.map(item => {
return {
name: item.item_name,
description_new: item.item_description,
} satisfies Item;
})
);
Здесь TS проверит реальное соответствие типу и ругнётся на лишнее поле. При этом автовыведение типов всё ещё работает.
Подробнее — по ссылке.
https://frontendmasters.com/blog/satisfies-in-typescript/
BY mefody.dev

Share with your friend now:
tgoop.com/mefody_dev/375