Полезные приёмы TypeScript
Несколько приёмов TypeScript, которые сделают ваш код лучше
typescriptразработка
TypeScript — мощный инструмент, но многие используют лишь малую часть его возможностей.
Discriminated Unions
Один из самых полезных паттернов:
type Result<T> =
| { success: true; data: T }
| { success: false; error: string }
function handleResult(result: Result<string>) {
if (result.success) {
console.log(result.data) // TypeScript знает что data есть
} else {
console.error(result.error) // TypeScript знает что error есть
}
}Const Assertions
Используйте as const для литеральных типов:
const ROUTES = {
home: "/",
blog: "/blog",
about: "/about",
} as const
type Route = typeof ROUTES[keyof typeof ROUTES]
// Route = "/" | "/blog" | "/about"Template Literal Types
Генерация типов из строк:
type EventName = "click" | "focus" | "blur"
type Handler = `on${Capitalize<EventName>}`
// Handler = "onClick" | "onFocus" | "onBlur"Эти приёмы помогут писать более типобезопасный и читаемый код.