π§ TypeScript Π² Π΄Π΅ΡΠ°Π»ΡΡ : Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ tsconfig.json ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ
ΠΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΅: ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ tsconfig.json. Π Π°Π·Π±ΠΈΡΠ°Π΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈ Π΅Π³ΠΎ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ, ΡΠ±ΠΎΡΠΊΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ TypeScript-ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ tsconfig.json?
Π€Π°ΠΉΠ» tsconfig.json Π² TypeScript β ΡΡΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ. ΠΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ:
- ΠΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° TypeScript:
ΠΠ°ΠΊ ΠΊΠΎΠ΄ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² JavaScript
ΠΠ°ΠΊΡΡ Π²Π΅ΡΡΠΈΡ JavaScript ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅
ΠΠ°ΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ/ΠΈΡΠΊΠ»ΡΡΠ°ΡΡ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ - ΠΡΠ°Π²ΠΈΠ»Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ²:
ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠ³ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠΎΠ²
ΠΠ°ΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡnull
ΠΈundefined
Π Π°Π·ΡΠ΅ΡΠ°ΡΡ Π»ΠΈ Π½Π΅ΡΠ²Π½ΡΠ΅ any ΡΠΈΠΏΡ - Π‘ΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
ΠΠ΄Π΅ ΠΈΡΠΊΠ°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ
ΠΡΠ΄Π° ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ΠΈ ΠΏΡΡΡΠΌΠΈ ΠΈΠΌΠΏΠΎΡΡΠ° - Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ:
Π‘ ΠΊΠ°ΠΊΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠΎΠ΄
ΠΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ JavaScript Π΄ΠΎΡΡΡΠΏΠ½Ρ
ΠΠ°ΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ JavaScript ΠΊΠΎΠ΄ΠΎΠΌ
Π’Π°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ tsconfig.json
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΡΠ»ΡΡΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ±ΠΎΡΠΊΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ΄Π°, ΡΠ»ΡΡΡΠΈΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ:
Π Π°Π·Π±Π΅ΡΠ΅ΠΌ ΡΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
ΠΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ TypeScript
ΠΠΏΡΠΈΡ "incremental": true
ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ
ΠΊΠΎΠ΄ΠΎΠ²ΡΡ
Π±Π°Π· ΠΈΠ»ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π³Π΄Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ±ΠΎΡΠΊΠ°ΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π»ΠΈΡΡ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π°. ΠΠΎΠ³Π΄Π° ΡΡΠ° ΠΎΠΏΡΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π°, TypeScript ΠΊΡΡΠΈΡΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΡΠ±ΠΎΡΠΊΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠΊΠΎΠ½ΠΎΠΌΡ Π²ΡΠ΅ΠΌΡ.
ΠΠΎΠ»Π½Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠΎΠ²
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ "strict": true
Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ² Π² TypeScript, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ
Π΄Π»Ρ ΡΠ°Π½Π½Π΅Π³ΠΎ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ
ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π³ΡΠ°Π½ΠΈΡΠ½ΡΡ
ΡΠ»ΡΡΠ°Π΅Π². ΠΡΠΎΡ Π²ΡΠ΅ΠΎΠ±ΡΠ΅ΠΌΠ»ΡΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΡΡΠ³ΠΈΡ
Π²Π°ΠΆΠ½ΡΡ
Π½Π°ΡΡΡΠΎΠ΅ΠΊ:
noImplicitAny
β Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ ΡΠΈΠΏ any. ΠΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π²ΡΠ½ΡΠΆΠ΄Π°Π΅Ρ Π²Π°Ρ ΡΠ²Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΈΠΏΡ, ΡΠ½ΠΈΠΆΠ°Ρ ΡΠΈΡΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ.strictNullChecks
β Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡnull
ΠΈundefined
ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ, Π΄Π΅Π»Π°Ρ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ Π·Π° ΡΡΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π°Π΄ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΡΡΡΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ.strictFunctionTypes
β Π²Π²ΠΎΠ΄ΠΈΡ ΡΡΡΠΎΠ³ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΏΡΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Π² ΡΠ°Π·Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ.strictBindCallApply
β Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΏΠΎΠ² Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²bind
,call
ΠΈapply
, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠΈΠΏΠ°ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ.strictPropertyInitialization
β ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΊΠ»Π°ΡΡΠ° ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΡΠ΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅, ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.noImplicitThis
β Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ, Π΅ΡΠ»ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎthis
ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏany
, ΡΡΠ΅Π±ΡΡ ΡΠ²Π½ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ this.alwaysStrict
β ΡΠ±Π΅ΠΆΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ Π² ΡΡΡΠΎΠ³ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ECMAScript ("use strict"
Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ), ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΡΠ²Π»ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.useUnknownInCatchVariables
β ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ Π² Π±Π»ΠΎΠΊΠ°Ρ catch Ρ any Π½Π° unknown, ΡΠ»ΡΡΡΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΡΠ΅Π±ΡΡΡΡΡ ΡΠ²Π½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΏΠ° ΠΎΡΠΈΠ±ΠΊΠΈ.noUncheckedIndexedAccess: true
β ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΈ ΠΏΡΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ΅ ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΡΠ±ΠΎΡΠΊΠΈ
rootDir: "src"
β ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅, Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°Ρ ΡΠ°ΠΉΠ»Ρ, ΠΈ Π΄Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π·Π½Π°ΡΡ, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ.outDir: "./build"
β Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, ΠΊΡΠ΄Π° TypeScript Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ. ΠΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅src/
) ΠΎΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ JavaScript-ΠΊΠΎΠ΄Π°.
ΠΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½Π°Ρ ΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠ½Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ
target: "es6"
β ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²Π΅ΡΡΠΈΡ ECMAScript Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π°. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° target Π½Π° es6 ΡΠ°ΡΡΠΎ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½Π° Π΄Π»Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ° Π²Π΅ΡΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ async/await, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ JavaScript. ΠΡΠΈ ΡΡΠΎΠΌ ΠΊΠΎΠ΄, ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄ΠΎ ES6, ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌ Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ² ΠΈ ΡΡΠ΅Π΄ Node.js.module: "NodeNext"
β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ: CommonJS, ESNext ΠΈΠ»ΠΈ NodeNext. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ NodeNext ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ES (ECMAScript Modules) Π²ΠΌΠ΅ΡΡΠ΅ Ρ TypeScript. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ Node.js Π² Π½ΠΎΠ²Π΅ΠΉΡΠ΅ΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅. ΠΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΡΡΠΎΠΈΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ commonjs ΠΈΠ»ΠΈ esnext Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ.
ΠΡΠ»Π°Π΄ΠΊΠ° ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
sourceMap: true
β Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠ°ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠΌΠΎΡΠΈ Π² ΠΎΡΠ»Π°Π΄ΠΊΠ΅. ΠΠ°ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² ΡΠ²ΡΠ·ΡΠ²Π°ΡΡ Π²Π°Ρ ΠΊΠΎΠ΄ Π½Π° TypeScript Ρ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΌ JavaScript, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π² VS Code ΠΈ Chrome DevTools Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅. ΠΠ΅Π· ΠΊΠ°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² ΠΎΡΠ»Π°Π΄ΠΊΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠΈ Π±ΡΠ΄ΡΡ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ JavaScript-ΠΊΠΎΠ΄, Π° Π½Π΅ Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ TypeScript.skipLibCheck: true
β ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΏΠΎΠ² Π΄Π»Ρ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°skipLibCheck
Π²true
ΠΌΠΎΠΆΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΏΠΎΠ². ΠΡΠΎ ΡΡΠΊΠΎΡΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ Π±Π΅Π· ΡΡΠ΅ΡΠ±Π° Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΆΠ΅ Ρ ΠΎΡΠΎΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Ρ.
ΠΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΊΠΎΠ΄Π°
noUnusedParameters
ΠΈnoUnusedLocals: false
β ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΡΠΈΡΡΠΎΡΡ ΠΊΠΎΠ΄Π°, Ρ ΠΎΡΡ ΠΈΠ½ΠΎΠ³Π΄Π° Π±ΡΠ²Π°Π΅Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π°.noImplicitOverride: true
β ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ²Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°override
ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠΎΠ². Π‘ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌnoImplicitOverride
Π»ΡΠ±ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎoverride
. ΠΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΡ ΠΊΠΎΠ΄Π°, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ .
Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ JSON
esModuleInterop: true
β ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΠΈΠΌΠΏΠΎΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ CommonJS. Π TypeScript Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ES ΠΈ CommonJS. Π‘ ΠΏΠΎΠΌΠΎΡΡΡesModuleInterop
ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ.resolveJsonModule: true
β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ JSON-ΡΠ°ΠΉΠ»Ρ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ JSON-ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ°ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠΊΠ»ΡΡΠΈΠ²resolveJsonModule
, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ JSON, ΠΈ TypeScript Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°Π·Π½Π°ΡΠΈΡ Π΅ΠΌΡ ΡΠΈΠΏany
.
Π§ΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΈ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ
forceConsistentCasingInFileNames: true
Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ Π² ΠΏΡΡΡΡ
ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ Π½Π° Π²ΡΠ΅Ρ
ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ
, ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΡΡΡΡ
ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Unix ΠΈ Windows.
ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°Π½ΠΈΡ
allowUnreachableCode: false
β Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ Π½Π΅Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.noFallthroughCasesInSwitch: true
β ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°Ρ switch, Π·Π°ΡΡΠ°Π²Π»ΡΡ Π²ΡΠ΄Π°Π²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π΅ΡΠ»ΠΈ ΠΎΠ΄Π½Π° Π²Π΅ΡΠ²Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π±Π΅Π· ΡΠ²Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² break, return ΠΈΠ»ΠΈ throw.
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΉ Π² ΡΠ°ΠΉΠ»Π΅ tsconfig.json
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ TypeScript-ΠΏΡΠΎΠ΅ΠΊΡΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±ΡΡΡΡΡΡ
, Π»Π΅Π³ΠΊΠΈΡ
Π² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ°ΠΊΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ tsconfig.json Π²Ρ ΡΡΠΈΡΠ°Π΅ΡΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ? ΠΠΎΠ΄Π΅Π»ΠΈΡΠ΅ΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ!
π ΠΠ»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ Π²ΠΎΠΉΡΠΈ Π²ΠΎ frontend-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ
ΠΡΡΡ Frontend basic ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°Β»:
- 26 Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊΠΎΠ² ΠΎΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΡΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΠ°Π·ΠΏΡΠΎΠΌΠ±Π°Π½ΠΊΠ° ΠΈ ΠΡΡΠΎΡΠ»ΠΎΡΠ°
- ΠΡ ΠΎΡΠ½ΠΎΠ² HTML/CSS Π΄ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Π½Π° React
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ:
- ΠΠ΅ΡΡΡΠΎΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°ΠΌ
- ΠΡΠ°ΠΊΡΠΈΠΊΠ° Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
- ΠΠΎΠ΄ ΡΠ΅Π²ΡΡ Π²ΡΠ΅Ρ Π·Π°Π΄Π°Π½ΠΈΠΉ
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΠ»ΡΡΠ°ΡΠΈΠΉ