TypeScript️
126 subscribers
3 photos
3 links
Улучши свои знания по языку TypeScript.
Download Telegram
🍏 Использование оператора `satisfies` 🍊

Сегодня рассмотрим, как оператор satisfies в TypeScript может упростить работу с типами и улучшить безопасность кода. Представим, что у нас есть список продуктов и мы хотим создать объект, где ключи — произвольные строки, а значения — элементы этого списка.

const listA = ['apples', 'oranges', 'peaches'] as const;
type ListA = (typeof listA)[number]; // "apples" | "oranges" | "peaches"


Без satisfies мы могли бы сделать так:

const listMap1: Record<string, ListA> = {
a: 'apples',
b: 'oranges',
c: 'peaches',
d: 'apples',
};


Но что, если мы случайно добавим неправильное значение?

const listMap1: Record<string, ListA> = {
a: 'apples',
b: 'oranges',
c: 'peaches',
d: 'carrot', // Ошибка!
};


С satisfies мы можем указать, что ожидаем строки в качестве ключей и значения из списка:

const listMap2 = {
a: 'apples',
b: 'oranges',
c: 'peaches',
d: 'apples',
} satisfies Record<string, ListA>;


Теперь, если мы попытаемся получить тип ключей:

type Key2 = keyof typeof listMap2;
const keyTwo: Key2 = 'Y'; // Ошибка! 'Y' не является ключом


Ошибка! И это именно то, что нам нужно для обеспечения корректности нашего кода.

🚀 Вывод: Оператор satisfies помогает TypeScript лучше понимать наши намерения, делая код более надежным и понятным. Попробуйте использовать его в своих проектах и почувствуйте разницу!

#TypeScript #WebDev #ProgrammingTips #CodeSafety
🔥3