tgoop.com/React_lib/660
Create:
Last Update:
Last Update:
📌 5 крутых фич TypeScript, о которых ты мог не знать
TypeScript — это не просто строгая типизация, но и мощный инструмент, который может сделать твой код чище и безопаснее. Сегодня покажу 5 полезных возможностей, которые ты мог упустить!
1️⃣ satisfies — Гарантия соответствия
Часто бывает, что мы определяем объект с определёнными ключами, но хотим, чтобы TypeScript проверил, соответствуют ли они ожидаемой схеме. Вот где пригодится satisfies:
type Theme = "light" | "dark";
const config = {
theme: "light",
debug: true,
} satisfies { theme: Theme; debug: boolean };
// Теперь TypeScript гарантирует, что `theme` всегда будет соответствовать "light" | "dark"
2️⃣
keyof + typeof — Безопасные ключи Если у тебя есть объект и ты хочешь работать с его ключами безопасно, эта комбинация спасает:
const user = {
name: "Jhon",
age: 30,
};
type UserKeys = keyof typeof user; // "name" | "age"
const key: UserKeys = "name"; // ✅ TypeScript гарантирует, что это корректный ключ
3️⃣
Extract<> и Exclude<> — Фильтрация типов Эти утилиты позволяют выделять или исключать типы из union-типов:
type EventType = "click" | "hover" | "scroll";
type MouseEvents = Extract<EventType, "click" | "hover">; // "click" | "hover"
type NonMouseEvents = Exclude<EventType, "click" | "hover">; // "scroll"
4️⃣
as const — Заморозка значений Если тебе нужно, чтобы объект или массив стали неизменяемыми (и сохранили точные значения), используй
as const:
const roles = ["admin", "user", "guest"] as const;
type Role = (typeof roles)[number]; // "admin" | "user" | "guest"
5️⃣
ReturnType<> — Получение типа возвращаемого значения Если у тебя есть функция, и тебе нужно определить её возвращаемый тип,
ReturnType<> сделает это за тебя:
function getUser() {
return { name: "Jhon", age: 30 };
}
type User = ReturnType<typeof getUser>; // { name: string; age: number }
✍️ @React_lib
BY React
Share with your friend now:
tgoop.com/React_lib/660
