[ΠΠΈΡ Π°ΠΈΠ» ΠΠ΅ΠΏΠΎΠΌΠ½ΡΡΠΈΠΉ] [stepik] TypeScript Π΄Π»Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (2022)
[ΠΠΈΡ
Π°ΠΈΠ» ΠΠ΅ΠΏΠΎΠΌΠ½ΡΡΠΈΠΉ] [stepik]
TypeScript Π΄Π»Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (2022)
Π ΠΊΡΡΡΠ΅:
Π£Π·Π½Π°ΠΉΡΠ΅ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ TypeScript, ΠΊΠ°ΠΊ ΠΎΠ½ Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠ° JavaSctipt ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. Π£Π·Π½Π°ΠΉΡΠ΅ ΠΊΠ°ΠΊ TypeScript ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π·Ρ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΉ ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π±Π°Π³ΠΎΠ² ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ.
ΠΠ°Π½Π½ΡΠΉ ΠΊΡΡΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ ΠΠ°Ρ Ρ Π°Π·Π°ΠΌΠΈ ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°Π·ΠΎΠ²ΡΠ΅Ρ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ . ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ 3 ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΡΠΎΠ±Ρ Π·Π°ΠΊΡΠ΅ΠΏΠΈΡΡ ΠΏΡΠΎΠΉΠ΄Π΅Π½Π½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π°ΠΊΡΠ΅Π½Ρ Π½Π° ΡΠΎΠΌ, ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Π°ΠΆΠ½ΠΎ.
ΠΡΠ΅Π³ΠΎ Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ TypeScript ΠΏΡΠΎΡΠ΅Π» ΠΏΡΡΡ ΠΎΡ Π½ΠΎΠ²ΠΈΡΠΊΠ° Π½Π° ΡΡΠ½ΠΊΠ΅ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎ Π»ΡΠ±ΠΈΠΌΡΠ° ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ΅ΠΉΡΠΈΠ½Π³Π°Ρ ΡΠ·ΡΠΊ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²Π΅Π΄ΡΡΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ, ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎ Π²Ρ ΠΎΠ΄Ρ Π² Π’ΠΎΠΏ-5 ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ².
ΠΡΡΡ ΠΏΠΎΠΊΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π½Π°Π²ΡΠΊΠΈ ΠΏΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡ ΡΠ·ΡΠΊΠ°, Π΅Π³ΠΎ ΡΠΈΡΠ°ΠΌ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π Π°Π·Π±Π΅ΡΠΈΡΠ΅ΡΡ Ρ ΠΌΠΈΡΠΎΠΌ ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π½Π°ΡΠ½ΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΡΠ²ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ !
Π ΠΊΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ:
ΠΠΎΠ½ΡΡΠΈΠ΅ ΡΠΈΠΏΠ° ΠΈ ΠΊΠ°ΠΊ ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈ Π°Π»ΠΈΠ°ΡΡ ΡΠΈΠΏΠΎΠ²
ΠΠ°ΡΡΠΈΠ²Ρ ΠΈ ΠΊΠΎΡΡΠ΅ΠΆΠΈ (tuple)
Union ΠΈ enum
ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ (ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ)
Π£ΡΠΎΡΠ½Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ΠΈ Π·Π°ΡΠΈΡΠ½ΠΈΠΊΠΈ ΡΠΈΠΏΠΎΠ²
ΠΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ TypeScript
ΠΠ°ΠΏΠΏΠΈΠ½Π³ ΡΠΈΠΏΠΎΠ² ΠΈ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠ΅ Π»ΠΈΡΠ΅ΡΠ°Π»Ρ
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ React ΠΈ Redux ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
3 ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° TypeScript
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅:
#1 ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΠ΅
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ TypeScript ΠΈ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ TypeScript
ΠΡΠ΅ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ ΠΊ ΠΊΡΡΡΡ
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ
ΠΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½ ΠΊΡΡΡ
#2 ΠΠ°Π·ΠΎΠ²Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ
Π ΠΌΠΎΠ΄ΡΠ»Π΅
ΠΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ
ΠΠ°Π·ΠΎΠ²Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΠ°Π·ΠΎΠ²Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
ΠΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
ΠΠΎΡΡΠ΅ΠΆΠΈ
ΠΠ»ΠΈΠ°ΡΡ
Union ΡΠΈΠΏΡ
Enum
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#3 ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ
Π ΠΌΠΎΠ΄ΡΠ»Π΅
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± Π°Π»ΠΈΠ°ΡΠ°Ρ
Type vs Interface
Π‘ΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ²
Type Guards
Asserts
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ this
ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΉ
Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ !
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#4 ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ
Π ΠΌΠΎΠ΄ΡΠ»Π΅
ΠΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ²
ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ keyof
Π‘ΡΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΈΠΏΠ°
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
ΠΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΈΠΏΠΎΠ² Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#5 ΠΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ²
Π ΠΌΠΎΠ΄ΡΠ»Π΅
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ typeof
Conditional type
ΠΡΠ΅ ΡΠ°Π· ΠΏΡΠΎ extends
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ infer
ΠΠ°ΠΏΠΏΠΈΠ½Π³ ΡΠΈΠΏΠΎΠ²
Π£ΡΠΈΠ»ΠΈΡΡ Extract, Exclude, NonNullable
Π£ΡΠΈΠ»ΠΈΡΡ Record, Pick, Omit
Π£ΡΠΈΠ»ΠΈΡΡ ReadOnly, Required, Partial
Π£ΡΠΈΠ»ΠΈΡΡ Parameters, CounstructorParameters
ΠΠΎΡΡΡΠΏ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ
Π¨Π°Π±Π»ΠΎΠ½Π½ΡΠ΅ Π»ΠΈΡΠ΅ΡΠ°Π»Ρ
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#6 ΠΡΠΎΠ΅ΠΊΡ 1. Vanilla JS -> TypeScript
ΠΠ±Π·ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ts-ΠΏΡΠΎΠ΅ΠΊΡΠ°
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ type guards
Π’ΠΈΠΏΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#7 ΠΠ»Π°ΡΡΡ
Π ΠΌΠΎΠ΄ΡΠ»Π΅
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ°
ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ°
ΠΡΠ°Π½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°
ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ
ΠΠ΅ΡΡΠ΅ΡΡ ΠΈ ΡΠ΅ΡΡΠ΅ΡΡ
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#8 ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°
Π ΠΌΠΎΠ΄ΡΠ»Π΅
Π‘ΠΎΡΡΠ°Π²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΊΠΎΠ½ΡΠΈΠ³Π°
ΠΠ°Π·ΠΎΠ²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ
ΠΠΏΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΡΠΈΠΈ
Π’ΡΠ½ΠΈΠ½Π³ ΡΡΡΠΎΠ³ΠΎΡΡΠΈ
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π»ΠΈΠ½ΡΠΈΠ½Π³
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#9 Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
Π ΠΌΠΎΠ΄ΡΠ»Π΅
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΏΡΠΎΠ²
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΡΠ΅ΠΉΡΠ°
Π₯ΡΠ½Π΄Π»Π΅ΡΡ
Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ²
ΠΡΠ°Π½ΡΡ useEffect
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ useRef
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ TodoList
ΠΠ»Π°ΡΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#10 ΠΡΠΎΠ΅ΠΊΡ Π½Π° React+TS
ΠΠ±Π·ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ
Π¨Π°ΠΏΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΠΈΡΠΊΠ°
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠΎΡΠΌΡ
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ
Π¨Π°ΠΏΠΊΠ° ΠΊΠ°ΡΡΠΎΡΠΊΠΈ
ΠΠ½ΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#11 Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Redux
Π ΠΌΠΎΠ΄ΡΠ»Π΅
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Redux Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΠ»Π°ΠΉΡΠΎΠ²
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΎΠ²
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ asyncThunk
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ extraReducers
AsyncThunk ΠΊΠ°ΠΊ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊ
ΠΠΎΡΠ°Π±ΠΎΡΠΊΠ° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ»Π°ΠΉΡΠ°
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#12 ΠΡΠΎΠ΅ΠΊΡ React+Redux+TS
ΠΠ±Π·ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
UI ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΡΠ΅ΠΌΡ
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΡΡΡΠ°Π½
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΉ
ΠΡΠΎΠ³ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°
#13 ΠΡΠΎΠ³ΠΈ ΠΊΡΡΡΠ°
TypeScript Π΄Π»Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (2022)
Π ΠΊΡΡΡΠ΅:
Π£Π·Π½Π°ΠΉΡΠ΅ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ TypeScript, ΠΊΠ°ΠΊ ΠΎΠ½ Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠ° JavaSctipt ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. Π£Π·Π½Π°ΠΉΡΠ΅ ΠΊΠ°ΠΊ TypeScript ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π·Ρ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΉ ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π±Π°Π³ΠΎΠ² ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ.
ΠΠ°Π½Π½ΡΠΉ ΠΊΡΡΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ ΠΠ°Ρ Ρ Π°Π·Π°ΠΌΠΈ ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°Π·ΠΎΠ²ΡΠ΅Ρ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ . ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ 3 ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΡΠΎΠ±Ρ Π·Π°ΠΊΡΠ΅ΠΏΠΈΡΡ ΠΏΡΠΎΠΉΠ΄Π΅Π½Π½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π°ΠΊΡΠ΅Π½Ρ Π½Π° ΡΠΎΠΌ, ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Π°ΠΆΠ½ΠΎ.
ΠΡΠ΅Π³ΠΎ Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ TypeScript ΠΏΡΠΎΡΠ΅Π» ΠΏΡΡΡ ΠΎΡ Π½ΠΎΠ²ΠΈΡΠΊΠ° Π½Π° ΡΡΠ½ΠΊΠ΅ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎ Π»ΡΠ±ΠΈΠΌΡΠ° ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ΅ΠΉΡΠΈΠ½Π³Π°Ρ ΡΠ·ΡΠΊ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²Π΅Π΄ΡΡΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ, ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎ Π²Ρ ΠΎΠ΄Ρ Π² Π’ΠΎΠΏ-5 ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ².
ΠΡΡΡ ΠΏΠΎΠΊΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π½Π°Π²ΡΠΊΠΈ ΠΏΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡ ΡΠ·ΡΠΊΠ°, Π΅Π³ΠΎ ΡΠΈΡΠ°ΠΌ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π Π°Π·Π±Π΅ΡΠΈΡΠ΅ΡΡ Ρ ΠΌΠΈΡΠΎΠΌ ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π½Π°ΡΠ½ΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΡΠ²ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ !
Π ΠΊΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ:
ΠΠΎΠ½ΡΡΠΈΠ΅ ΡΠΈΠΏΠ° ΠΈ ΠΊΠ°ΠΊ ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈ Π°Π»ΠΈΠ°ΡΡ ΡΠΈΠΏΠΎΠ²
ΠΠ°ΡΡΠΈΠ²Ρ ΠΈ ΠΊΠΎΡΡΠ΅ΠΆΠΈ (tuple)
Union ΠΈ enum
ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ (ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ)
Π£ΡΠΎΡΠ½Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ΠΈ Π·Π°ΡΠΈΡΠ½ΠΈΠΊΠΈ ΡΠΈΠΏΠΎΠ²
ΠΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ TypeScript
ΠΠ°ΠΏΠΏΠΈΠ½Π³ ΡΠΈΠΏΠΎΠ² ΠΈ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠ΅ Π»ΠΈΡΠ΅ΡΠ°Π»Ρ
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ React ΠΈ Redux ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
3 ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° TypeScript
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅:
#1 ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΠ΅
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ TypeScript ΠΈ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ TypeScript
ΠΡΠ΅ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡ ΠΊ ΠΊΡΡΡΡ
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ
ΠΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½ ΠΊΡΡΡ
#2 ΠΠ°Π·ΠΎΠ²Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ
Π ΠΌΠΎΠ΄ΡΠ»Π΅
ΠΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ
ΠΠ°Π·ΠΎΠ²Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΠ°Π·ΠΎΠ²Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
ΠΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
ΠΠΎΡΡΠ΅ΠΆΠΈ
ΠΠ»ΠΈΠ°ΡΡ
Union ΡΠΈΠΏΡ
Enum
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#3 ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ
Π ΠΌΠΎΠ΄ΡΠ»Π΅
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± Π°Π»ΠΈΠ°ΡΠ°Ρ
Type vs Interface
Π‘ΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ²
Type Guards
Asserts
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ this
ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΉ
Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ !
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#4 ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ
Π ΠΌΠΎΠ΄ΡΠ»Π΅
ΠΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ²
ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ keyof
Π‘ΡΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΈΠΏΠ°
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
ΠΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΈΠΏΠΎΠ² Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#5 ΠΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ²
Π ΠΌΠΎΠ΄ΡΠ»Π΅
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ typeof
Conditional type
ΠΡΠ΅ ΡΠ°Π· ΠΏΡΠΎ extends
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ infer
ΠΠ°ΠΏΠΏΠΈΠ½Π³ ΡΠΈΠΏΠΎΠ²
Π£ΡΠΈΠ»ΠΈΡΡ Extract, Exclude, NonNullable
Π£ΡΠΈΠ»ΠΈΡΡ Record, Pick, Omit
Π£ΡΠΈΠ»ΠΈΡΡ ReadOnly, Required, Partial
Π£ΡΠΈΠ»ΠΈΡΡ Parameters, CounstructorParameters
ΠΠΎΡΡΡΠΏ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ
Π¨Π°Π±Π»ΠΎΠ½Π½ΡΠ΅ Π»ΠΈΡΠ΅ΡΠ°Π»Ρ
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#6 ΠΡΠΎΠ΅ΠΊΡ 1. Vanilla JS -> TypeScript
ΠΠ±Π·ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ts-ΠΏΡΠΎΠ΅ΠΊΡΠ°
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ type guards
Π’ΠΈΠΏΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#7 ΠΠ»Π°ΡΡΡ
Π ΠΌΠΎΠ΄ΡΠ»Π΅
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ°
ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ°
ΠΡΠ°Π½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°
ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ
ΠΠ΅ΡΡΠ΅ΡΡ ΠΈ ΡΠ΅ΡΡΠ΅ΡΡ
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#8 ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°
Π ΠΌΠΎΠ΄ΡΠ»Π΅
Π‘ΠΎΡΡΠ°Π²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΊΠΎΠ½ΡΠΈΠ³Π°
ΠΠ°Π·ΠΎΠ²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ
ΠΠΏΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΡΠΈΠΈ
Π’ΡΠ½ΠΈΠ½Π³ ΡΡΡΠΎΠ³ΠΎΡΡΠΈ
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π»ΠΈΠ½ΡΠΈΠ½Π³
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#9 Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
Π ΠΌΠΎΠ΄ΡΠ»Π΅
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΏΡΠΎΠ²
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΡΠ΅ΠΉΡΠ°
Π₯ΡΠ½Π΄Π»Π΅ΡΡ
Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ²
ΠΡΠ°Π½ΡΡ useEffect
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ useRef
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ TodoList
ΠΠ»Π°ΡΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#10 ΠΡΠΎΠ΅ΠΊΡ Π½Π° React+TS
ΠΠ±Π·ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ
Π¨Π°ΠΏΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΠΈΡΠΊΠ°
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠΎΡΠΌΡ
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ
Π¨Π°ΠΏΠΊΠ° ΠΊΠ°ΡΡΠΎΡΠΊΠΈ
ΠΠ½ΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#11 Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Redux
Π ΠΌΠΎΠ΄ΡΠ»Π΅
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Redux Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΠ»Π°ΠΉΡΠΎΠ²
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΎΠ²
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ asyncThunk
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ extraReducers
AsyncThunk ΠΊΠ°ΠΊ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊ
ΠΠΎΡΠ°Π±ΠΎΡΠΊΠ° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ»Π°ΠΉΡΠ°
ΠΡΠΎΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ
#12 ΠΡΠΎΠ΅ΠΊΡ React+Redux+TS
ΠΠ±Π·ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
UI ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΡΠ΅ΠΌΡ
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΡΡΡΠ°Π½
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΉ
ΠΡΠΎΠ³ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°
#13 ΠΡΠΎΠ³ΠΈ ΠΊΡΡΡΠ°
favorite
0
star
0
