πΊοΈ TypeScript
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ²Π΅ΡΡ JavaScript.
Π‘ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡ
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ TypeScript
- TypeScript -- ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈ Π·Π°ΡΠ΅ΠΌ
- TypeScript -- ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°
- tsconfig.json -- ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΡΠΈΠΈ
- TS Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ
- Type Annotations ΠΈ Type Inference
- interface vs type -- ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ
ΠΡΠ½ΠΎΠ²Ρ
tsconfig, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ TS.
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ TypeScript
- TypeScript -- ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈ Π·Π°ΡΠ΅ΠΌ
- TypeScript Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°
- TypeScript -- ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ tsconfig
- tsconfig.json -- ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΡΠΈΠΈ
- TypeScript -- ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈ Π·Π°ΠΏΡΡΠΊ
- ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ
- TypeScript Compiler API
- Type Annotations ΠΈ Type Inference
- TS vs JS -- ΡΠΈΠ»ΠΎΡΠΎΡΠΈΡ Π’ΠΈΠΌΡΡΠ°
Π’ΠΈΠΏΡ
ΠΠ°Π·ΠΎΠ²ΡΠ΅
string/number/boolean, any/unknown/never/void, ΠΌΠ°ΡΡΠΈΠ²Ρ, ΠΊΠΎΡΡΠ΅ΠΆΠΈ, ΡΡΠ½ΠΊΡΠΈΠΈ.
- TS Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ
- ΠΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ
- Π’ΠΈΠΏΡ -- null, undefined, void, never
- any unknown never void
- any, unknown -- ΡΠ°Π·Π»ΠΈΡΠΈΡ
- ΠΠ°ΡΡΠΈΠ²Ρ ΠΈ ΠΊΠΎΡΡΠ΅ΠΆΠΈ
- TS ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ
- Optional ΠΈ Default ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
- ΠΡΠΈΠΌΠΈΡΠΈΠ²Ρ Π² TS vs ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΡ V8
Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅
interface, type alias, Readonly, Union, Intersection, Discriminated, Enum, literal.
- ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ
- interface -- ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
- Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² -- extends
- Type alias
- type alias -- ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅
- interface vs type -- ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ
- Type vs Interface
- Readonly ΡΠ²ΠΎΠΉΡΡΠ²Π°
- Union Types
- Intersection Types
- Union ΠΈ Intersection
- in ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π΄Π»Ρ ΡΡΠΆΠ΅Π½ΠΈΡ
- Enum
- as const ΠΈ Enum
- as const ΠΈ const assertions
- ΠΠΈΡΠ΅ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ
- Literal Types
ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ ΡΠΈΠΏΡ
Generics
- Generics
- Generic ΡΡΠ½ΠΊΡΠΈΠΈ
- Generic ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈ ΠΊΠ»Π°ΡΡΡ
- ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² -- extends
- Variadic Tuple Types
- ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ -- ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ
Utility
Pick, Omit, Partial, Required, Record, Exclude, Extract, NonNullable, ReturnType, Parameters, InstanceType, Awaited.
- Utility types
- TS Utility Types
- Partial, Required, Readonly
- Pick, Omit, Record
- Exclude, Extract, NonNullable
- ReturnType, Parameters, InstanceType
- Awaited -- ΡΠΈΠΏ Π΄Π»Ρ ΠΏΡΠΎΠΌΠΈΡΠΎΠ²
Type Guards ΠΈ Narrowing
- TS Narrowing ΠΈ Type Guards
- Type guards
- Type Guards -- typeof ΠΈ instanceof
- ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Type Guards
- Discriminated Unions
- Assertion Functions
Type-Level
Conditional, Mapped, infer, branded, template literal, recursive, typeof/keyof.
- Mapped types
- Conditional types
- Template literal types
- Recursive Types
- Infer -- ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ²
- Branded Types
- typeof ΠΈ keyof
ΠΠΠ Π² TypeScript
ΠΠ»Π°ΡΡΡ, abstract, implements, Π΄ΠΎΡΡΡΠΏ, Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ.
- ΠΠ»Π°ΡΡΡ
- TS ΠΊΠ»Π°ΡΡΡ Π² TypeScript
- ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ°
- Parameter Properties
- abstract ΠΊΠ»Π°ΡΡΡ
- ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ
- implements -- ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²
- ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡΡ
ΠΠΎΠ΄ΡΠ»ΠΈ
import/export, .d.ts, Module Augmentation, namespaces.
- ΠΠΎΠ΄ΡΠ»ΠΈ TS
- TS ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΡΠ½
- Declaration files (.d.ts)
- Module Augmentation
ΠΡΠ°ΠΊΡΠΈΠΊΠ°
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ API, ΡΠΎΡΠΌ, ΡΠΎΠ±ΡΡΠΈΠΉ, callbacks. Strict mode, ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ, DTO.
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ Π·Π°Π΄Π°Ρ
- Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ API-ΠΎΡΠ²Π΅ΡΠΎΠ²
- Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
- Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Event Handlers
- Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
- Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ -- ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°Ρ
- Π’ΠΈΠΏΡ Π΄Π»Ρ callback ΡΡΠ½ΠΊΡΠΈΠΉ
- DTO Π² TypeScript -- ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ vs ΠΊΠ»Π°ΡΡ
Strict mode ΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ
- Strict mode Π² TS
- TS ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Ρ JavaScript
- ΠΠΈΠ³ΡΠ°ΡΠΈΡ JS β TS
- ΠΠΈΠ³ΡΠ°ΡΠΈΡ JS Π² TS -- ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ
V8 ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΎΡΡΠΈ
Π€ΠΈΠ»ΠΎΡΠΎΡΠΈΡ (provocative)
TS vs JS, ΠΏΠΎΠ·ΠΈΡΠΈΠΈ, UNION-debate.
- TS vs JS -- ΡΠΈΠ»ΠΎΡΠΎΡΠΈΡ Π’ΠΈΠΌΡΡΠ°
- ΠΡΠΈΠΌΠΈΡΠΈΠ²Ρ Π² TS vs ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΡ V8
- TS ΡΠΈΠΏΡ ΠΈ ΡΠΎΡΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² V8
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ β UNION types, any, runtime validation vs static types.
Π‘Π²ΡΠ·Π°Π½Π½ΡΠ΅
- _MOC JavaScript Β· _MOC SPA Β· _MOC Node.js
- _MOC ΠΠΠ Β· _MOC ΠΠ°ΡΡΠ΅ΡΠ½Ρ Β· _MOC Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
π§ ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ
| β¬ οΈ ΠΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ | _MOC JavaScript |
| β‘οΈ Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ | _MOC SPA |
| β¬ Π Π³Π»Π°Π²Π½ΠΎΠΉ | πΊοΈ MOC |