TypeScript — это типизированное надмножество JavaScript, которое компилируется в чистый JavaScript.
TypeScript помогает писать более предсказуемый и поддерживаемый код.
```typescript interface User { id: number; name: string; email: string; }
function greetUser(user: User): string { return `Привет, ${user.name}!`; } ```
Свайпни влево, чтобы продолжить →
TypeScript предоставляет множество встроенных типов для работы.
```typescript let message: string = "Привет"; let count: number = 42; let isActive: boolean = true; ```
```typescript
const numbers: number[] = [1, 2, 3, 4, 5];
const names: Array
Продолжай изучать дальше! →
Два основных способа описания структуры данных в TypeScript.
```typescript interface Person { name: string; age: number; greet(): void; } ```
Когда использовать:
```typescript type ID = string | number; type User = { id: ID; name: string; }; ```
Когда использовать:
```typescript interface Product { id: number; title: string; price: number; }
type CartItem = Product & { quantity: number; };
const item: CartItem = { id: 1, title: "Книга", price: 500, quantity: 2 }; ```
Дальше ещё интереснее! →
Дженерики позволяют создавать переиспользуемые компоненты, которые работают с различными типами.
Вместо того чтобы писать:
```typescript function identity(arg: number): number { return arg; } ```
Используем дженерик:
```typescript
function identity
const num = identity
```typescript
interface ApiResponse
interface User { id: number; name: string; }
const response: ApiResponse
```typescript interface HasLength { length: number; }
function logLength
logLength("Hello"); // ✅ OK logLength([1, 2, 3]); // ✅ OK // logLength(123); // ❌ Error ```
Почти закончили! →
TypeScript предоставляет множество встроенных утилитарных типов.
Делает все свойства опциональными
```typescript interface User { id: number; name: string; email: string; }
type PartialUser = Partial
Делает все свойства обязательными
```typescript
type RequiredUser = Required
Выбирает определённые свойства
```typescript type UserPreview = Pick<User, 'id' | 'name'>; // { id: number; name: string; } ```
Исключает определённые свойства
```typescript type UserWithoutEmail = Omit<User, 'email'>; // { id: number; name: string; } ```
```typescript type Role = 'admin' | 'user' | 'guest'; type Permissions = Record<Role, string[]>;
const permissions: Permissions = { admin: ['read', 'write', 'delete'], user: ['read', 'write'], guest: ['read'] }; ```
Вы изучили основы TypeScript. Продолжайте практиковаться и писать типобезопасный код!