Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊ typescript
ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ Π² TypeScript: ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΡ Π²ΠΌΠ΅ΡΡΠ΅
ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ! ΠΠΎΠΌΠ°Π½Π΄Π° TestMace ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅Ρ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠ°ΡΡΠΈ ΠΈΠ· ΠΌΠΈΡΠ° web-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ° ΡΡΠΎΡ ΡΠ°Π· Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ²! ΠΡΠΈΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ.
Π Π°Π·Π²Π΅Π΅ΠΌ ΠΏΠ΅Π»Π΅Π½Ρ ΡΠ°ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ ΠΈ Π½Π΅Π΄ΠΎΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π½Π°Π΄ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ ΠΏΠΎΠ΄ΡΡΠΆΠΈΠΌΡΡ Ρ Π½ΠΈΠΌ
ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅, ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΡΡΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Java ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² Π½Π΅ Ρ Π»ΠΎΠΏΠ°ΡΡ Π³Π»Π°Π·Π°ΠΌΠΈ, ΡΠ²ΠΈΠ΄Π΅Π² Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊ Π² TypeScript. ΠΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΡΠ΅Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π²ΡΠ΅Π³ΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΡ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ Π²ΠΈΠ΄Π΅ΡΡ Π² JavaScript, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°ΠΊ Π½Π΅ΠΏΡΠΎΡΡΠΎ ΡΡ ΠΎΠ΄Ρ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ Π²ΠΎΠΎΠ±ΡΠ΅ Π΄Π΅Π»Π°Π΅Ρ.
Π― Π±Ρ Ρ ΠΎΡΠ΅Π» ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π²ΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΅ΡΡΡ. Π― Π΄ΠΎΠΊΠ°ΠΆΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΏΠΎΡΠΎΠ±Π½Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π° JavaScript ΡΡΠ½ΠΊΡΠΈΡ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΡΠΎ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ Π±Π΅Π· Π»ΠΈΡΠ½ΠΈΡ ΡΡΠΈΠ»ΠΈΠΉ. ΠΠΎΠ΅Ρ Π°Π»ΠΈ!
ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ Π² TypeScript
Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ TypeScript ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: «Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ β ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΠ΄Π½ΠΈΠΌ, Π° Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ».
ΠΠ΄ΠΎΡΠΎΠ²ΠΎ! ΠΠ½Π°ΡΠΈΡ, ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π΅ΠΊΠΈΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ ΠΈΠΌ Π΄Π°Π½Π½ΡΡ . ΠΠΎ ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ? ΠΠΎΡ ΡΡΠΎ Ρ Π΄ΡΠΌΠ°Ρ.
ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ ΠΈ ΡΠΈΠΏΡ ΡΠΎΠΎΡΠ½ΠΎΡΡΡΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ (ΡΡΠ½ΠΊΡΠΈΡΠΌ, ΠΊΠ»Π°ΡΡΠ°ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌ), ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΠΈΡ Π²ΡΠ·ΠΎΠ²Π΅ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠ·ΠΎΠ²Π° ΠΌΡ ΡΠΎΠΎΠ±ΡΠ°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ°ΠΊΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ ΡΡΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ° ΡΠΎΠΆΠ΄Π΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π’ΠΎΠΆΠ΄Π΅ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² Π½Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. Π JavaScript ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π‘Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π»Π° Ρ ΡΠΈΡΠ»Π°ΠΌΠΈ:
ΠΡΠ»ΠΈΡΠ½ΠΎ, ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΆΠ΄Π΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΈΠΏ, Π½ΠΎ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° Π±ΡΠ»Π° Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠΉ ΠΈ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π»Π° Π΄Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΈΡΠ΅Π». ΠΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈ Π½ΡΠΆΠ½Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ. ΠΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ Π½Π° Π²Ρ ΠΎΠ΄Π΅ ΠΈ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½ΠΈΡ , ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ°ΠΌΡ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ. Π’Π΅ΠΏΠ΅ΡΡ-ΡΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π°Ρ ΠΏΡΠ³Π°ΡΡ. T ΠΈ U β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΠ΅ ΡΠ°ΠΌΠΈ. ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΌΠ΅ΡΡΠΎ Π½ΠΈΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΡΠΈΠΏΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ . ΠΠ° Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π·Π°ΠΏΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΈΠΏΠ°.
ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π»ΡΠ±ΠΎΠΉ ΡΠΈΠΏ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ², ΠΊΠ°ΠΊ ΠΈ Π±ΡΠ»ΠΎ ΠΎΠ±Π΅ΡΠ°Π½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ ΠΎΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²ΡΠΎΡΠΎΠΉ Π²ΡΠ·ΠΎΠ² console.log Π½Π° Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ Π²ΡΡΠ΅ β Π² Π½Π΅Π³ΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠΈΠΏ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ TypeScript ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΠΈΠΏ ΠΏΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ.
ΠΠ±ΠΎΠ±ΡΡΠ½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ
ΠΠ°ΠΌ ΡΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ β ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΡΠΏΠΎΡΠΎΠ± ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΈΠΏΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²Ρ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΈ Ρ ΠΌΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΈΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ: Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΠ°.
ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΡΠ°ΠΌΠΈ. ΠΠ°Π΄Π΅ΡΡΡ, Ρ Π²Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ.
ΠΡΠ»ΠΈ ΠΊΠΎΠ΄ ΡΡΠ°Π·Ρ Π½Π΅ ΠΏΠΎΠ½ΡΡΠ΅Π½, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ type ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ· Π²ΠΏΠ»ΠΎΡΡ Π΄ΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΡΡΠ΄ΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
Π Π΅Π°Π»ΡΠ½ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ: Π²ΡΡ ΠΎΠ΄ΠΈΠΌ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ²
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ:
ΠΠΎΠ΄Π²Π΅Π΄Π΅ΠΌ ΠΈΡΠΎΠ³ΠΈ
ΠΠ°Π΄Π΅ΡΡΡ, Ρ ΠΏΠΎΠΌΠΎΠ³ Π²Π°ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°ΠΌΠΈ. ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, Π²ΡΡ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, β ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ type Π² ΡΡΠ½ΠΊΡΠΈΡ π
ΠΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ Π΅ΡΡ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΏΡΠΎ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ, Ρ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠΈΠ» Π΄Π°Π»Π΅Π΅ ΠΏΠ°ΡΡ ΡΡΡΠ»ΠΎΠΊ.
TypeScript: ΠΠ±ΠΎΠ±ΡΡΠ½Π½ΡΠ΅ ΡΠΈΠΏΡ (Generics)
Π‘Π΅ΡΠΈΡ
Π Π΄Π²ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΡΠ°ΡΡΡΡ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ TypeScript, Π·Π°ΡΠ΅ΠΌ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π±ΡΠ΄ΡΡ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π²Π°ΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° Π½Π° ΡΡΠΎΠΌ Π½Π°Π΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΠ·ΡΠΊΠ° JavaScript.
Π’Π°ΠΊΠΆΠ΅, ΠΌΡ Π²ΡΠΊΠΎΠ»ΡΠ·Ρ Π·Π°Π΄Π΅Π»ΠΈ ΡΠ΅ΠΌΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π·Π³ΠΎΠ²Π°ΡΠΈΠ²Π°Π»ΠΈ ΠΎ ΡΠΈΠΏΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎΠ± ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΡΡ ΡΠΈΠΏΠ°Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
ΠΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ Π½Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ
ΠΠ±ΠΎΠ±ΡΡΠ½Π½ΡΠΉ ΡΠΈΠΏ (ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊ) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΌΠ΅Π½ΡΠ½ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ.
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΎΡΡΠ΅ΠΉΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π²ΡΡΠ΅, Π΅ΡΠ»ΠΈ Π±Ρ Π² TypeScript Π½Π΅ Π±ΡΠ»ΠΎ ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΈ Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΎΠ²Π°ΡΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠΆΠ΅ Π΅ΡΡΡ.
ΠΡΡ ΠΊΠ°ΠΊ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ: ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΅Π³ΠΎ ΠΆΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ°ΠΊ. ΠΠ½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈΡΠΌΠΎΡΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠΈΠΏΠ°ΠΌ: Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΡΠΈΠΏΠ° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΡΠΈΠΏΠ°, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ΠΈ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Ρ. ΠΡΡΠ±ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ° number ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° string β ΡΡΠΎ Π²Π°Π»ΠΈΠ΄Π½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ any ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΠΏΠΎΠ΄ ΡΠΎΠ±ΠΎΠΉ Π²ΡΡ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ.
Π‘Π΅ΠΉΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Β«ΡΡΡΠ½ΡΠΉ ΡΡΠΈΠΊΒ», Π² ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΡΡΠΎ-ΡΠΎ Π²Ρ ΠΎΠ΄ΠΈΡ, Π° Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΡΡΠΎ-ΡΠΎ Π²ΡΡ ΠΎΠ΄ΠΈΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡ ΠΎΠΆΠ΅Π΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π²Ρ ΠΎΠ΄ΠΈΠ»ΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ β Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ. Π― Π±Ρ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ ΡΠ°ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΠΎΠ±Π΅Π·Π»ΠΈΡΠΈΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉΒ» Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΠΈΠΏΠΎΠ². ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ any Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΠΏΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΡ ΠΎΠ±Π΅Π·Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½Π°Ρ Π·Π½Π°Π», ΡΡΠΎ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈ ΡΠΈΠΏΠΎΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Π ΠΌΠΈΡΠ΅ C#, ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ identity β ΡΡΠΎ ΠΎΡΠΊΡΡΡΡΠΉ ΡΠΈΠΏ, Π° identity β Π·Π°ΠΌΠΊΠ½ΡΡΡΠΉ. ΠΡΠΈ ΡΡΠΎΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π·Π°ΠΌΠΊΠ½ΡΡΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ.
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π²ΡΠ·Π²Π°ΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΡΠΈΠΏΠ° number ΠΈ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠ½ΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΠΌ Π·Π° ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΡΠΎ Π²Π΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΡΡ ΡΠΈΠΏΠΎΠ²
ΠΠ½ΠΎΠ³ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΌΡΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π½Π°ΠΊΠΎΠ² Β«ΠΌΠ΅Π½ΡΡΠ΅Β» ΠΈ Β«Π±ΠΎΠ»ΡΡΠ΅Β». ΠΠ»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ TypeScript ΠΈΠΌΠ΅Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΈΠΏΠΎΠ² ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΡΡ ΡΠΈΠΏΠΎΠ². ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΡΠ°ΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ (Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ²Π΅ΡΡΠΈ) ΡΠΈΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ C#, Π² TypeScript Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π° Π²ΡΠΎΡΠ°Ρ β Π΄Π»Ρ ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΠΎΠ³ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠΎΠ΅ Π² TypeScript Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ:
Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΈΠΏ Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ-ΡΠΈΠΏΠ°. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΠ»ΠΎΠΆΠΈΠ²ΡΡΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ Π½ΡΠΆΠ½ΠΎ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΠΏΡ.
ΠΠ»Ρ ΡΠ΅Π³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΡΠ΅ ΡΠΈΠΏΡ
ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° Π²Ρ Π²ΡΠ΅Π³Π΄Π° Π²ΡΡΠ°ΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ±ΠΎΡΠΎΠΌ, ΠΈΠΌΠ΅ΡΡΠΈΠΌ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π΄Π²Π΅ Π²Π΅ΡΠ²ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ΅ΡΠ²ΡΠΉ ΠΏΡΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ Π²Π°Ρ ΠΊ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Ρ Π½ΡΠΆΠ½ΡΠΌ Π²Π°ΠΌ ΡΠΈΠΏΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Β«ΡΠ°ΡΠΏΡΡ Π°Π½ΠΈΡΒ» ΠΊΠΎΠ΄Π° ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄ΡΠΌΠ°ΡΡ ΠΏΡΠΈ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π΅. ΠΡΠΎΡΠΎΠΉ ΠΏΡΡΡ β ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ, ΡΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΠΏΠΎΠ΄ ΡΠΎΠ±ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ, Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π»Π΅ΠΆΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ΄Π°, Π½ΠΎ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ. ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΡΠ΅ ΡΠΈΠΏΡ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠΎΠ².
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΡΠΈΠΏΠΎΠ²
ΠΠΎΠ³Π΄Π° ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π»Π³ΠΎΡΠΈΡΠΌ) ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΡΠΈΠΏΠΎΠΌ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π½Π°ΠΌ, ΡΡΠΎ Π² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π»ΠΈΡΡ ΡΠ΅ Β«ΠΎΠ±ΡΠ΅ΠΊΡΡΒ», ΡΡΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ Ρ ΡΡΠΈΠΌ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ . Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΡΠΈΠΏ, ΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΠΎΡΠΎΠ΄ΠΈΡ ΠΎΡΠΈΠ±ΠΊΡ.
ΠΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΊΠΎΠ΄
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π·Π°ΡΠΈΡΠ°Π΅Ρ Π½Π°Ρ ΠΎΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ², ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅Π½ΡΡΠ΅ Π·Π°ΡΠΈΡΠ½ΠΈΠΊΠΎΠ² ΡΠΈΠΏΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Π°Ρ ΡΡΠ΅ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ Π½Π° TypeScript ΠΈ ΡΡΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π² ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΠΎΠ±ΡΠ·Π°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π°ΡΠΈΡΠ½ΠΈΠΊΠΈ ΡΠΈΠΏΠΎΠ², Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΠ±Π΅ΡΠ΅Π³Π°ΡΡ ΡΠ²ΠΎΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΡΡ ΡΠΈΠΏΠΎΠ²
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΊΠΎΠ΄ Π½ΠΈΠΆΠ΅ ΠΈ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° Π²ΠΎΠΏΡΠΎΡ: ΡΡΠΎ Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΉΡΠΈ Π½Π΅ ΡΠ°ΠΊ?
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΡΠ·ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΡΠΈΠΏΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ΅, ΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΡΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ.
ΠΡΡΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠ²ΠΎΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² Π½Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ a ΠΈ b :
Π£ΡΠΎΡΠ½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
ΠΡΠ΅ ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΡΠΈΠΏΠΎΠ² ΠΈ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ ΠΏΠΎΠΊΠ΅ΠΌΠΎΠ½ΠΎΠ² ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ, ΡΡΠΎ Π±Π΅Π· TypeScript-Π° ΠΈ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ Π·Π΄Π΅ΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ ΠΏΠΎΠΊΠ΅ΠΌΠΎΠ½ΠΎΠ²: ΡΠΈΠΏ, Π²Π΅Ρ, Π²ΡΡΠΎΡΠ° ΠΈ ΡΠΈΠ»Π° Π°ΡΠ°ΠΊΠΈ.
Π ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΌΠ΅Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΏΠΎΠΊΠ΅ΠΌΠΎΠ½ΠΎΠ², Π½ΠΎ ΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ.
ΠΡΡΠ΄Π»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΠΈΠ· Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΈΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ² Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π΅ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ keyof β ΡΡΠΎ Π³Π°ΡΠ°Π½Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΠΈΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΏΡΠΈ ΡΡΠΎΠΌ Π²Π·Π°ΠΌΠ΅Π½ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, Π½ΠΎ ΠΈ Π΅Π³ΠΎ ΡΠΈΠΏ.
ΠΡΠΈΠ±ΠΎΠΊ Π½Π΅Ρ. Π’ΠΈΠΏΠΎΠ² Π½Π΅Ρ. Π£Π²Π΅ΡΠ΅Π½Π½ΠΎΡΡΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ β Π½Π΅Ρ. ΠΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ β Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ ΠΈ Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΠΈ. ΠΠ΄Π΅ΡΡ Π»ΠΈΡΡ ΠΎΠ΄Π½Π° ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΡΠΊΠ°: ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΠΈΠΏ, Π° Π½Π΅ ΠΏΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ
ΠΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΎΠ±ΠΎΡΠ»ΠΈ ΡΡΠΎΡΠΎΠ½ΠΎΠΉ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ.
ΠΠΎ ΡΡΠΎ ΡΠΊΡΡΠ½ΠΎ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΠΎ β Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΠΉΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°:
ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅ ΡΠΏΠ΅ΡΠΈΡΠ΅ ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π² Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ ΡΠ°ΠΌΠΈ: ΡΠΈΠΏ Partial ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π² TypeScript ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
Π ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, Π΄Π° ΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π²ΠΎΠΎΠ±ΡΠ΅, ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΈΠ·ΡΡΡΡ ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°, Π° Π΄Π²ΡΡ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Β«ΡΠΈΠ»ΡΡΡΒ» Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΡΠ°ΠΊΠΎΠΉ Β«ΡΠΈΠ»ΡΡΡΒ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΠ΅ Π½Π°ΠΌ ΡΠΈΠΏΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ, Π² ΡΠ°ΠΌΠΊΠ°Ρ Π²ΡΡ ΡΠ΅Ρ ΠΆΠ΅ ΠΏΠΎΠΊΠ΅ΠΌΠΎΠ½ΠΎΠ².
ΠΠΎΠ΄ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π³ΡΡΠ·Π½ΡΠΉ, Π½ΠΎ Ρ Π½Π΅ ΡΠΌΠΎΠ³ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠΉ:
TypeScript ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π½Π΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ES5. Π’Π°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ typescript-collections, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΡΡΡΠΈΠΉ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Β«ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅Β» ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π½Π° TypeScript.
ΠΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΊΠ»Π°ΡΡΠ°Ρ
ΠΠ΄Π΅ΡΡ ΠΎΡΠΎΠ±ΠΎ Π½Π΅ ΠΎ ΡΠ΅ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΡ ΡΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ β ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈ Π² ΠΊΠ»Π°ΡΡΠ°Ρ . ΠΡΠΎΡΡΠΎ ΠΈΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ. ΠΠ°ΡΠΎ Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎΠ± ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ .
Π‘ΡΡΠ»ΠΎΡΠΊΠΈ
ΠΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΈ ΠΎΡΡΠ°Π²Π»ΡΡ ΠΏΠ°ΡΡ ΡΡΡΠ»ΠΎΡΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ½ΡΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΌΠΎΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π½ΠΎ ΠΈ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ Π΄ΡΡΠ³ΠΈΡ Π°Π²ΡΠΎΡΠΎΠ². ΠΠ΅ ΡΠ΄ΠΈΠ²Π»ΡΠΉΡΠ΅ΡΡ, ΡΡΠΎ Π² ΡΡΡΠ»ΠΊΠ°Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΏΠΎ C#, ΡΠ°ΠΊ ΠΊΠ°ΠΊ TypeScript Π±Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ· Π½Π΅Π³ΠΎ β Π½Π°ΠΏΠΎΠΌΠ½Ρ, ΡΡΠΎ Ρ Π½ΠΈΡ ΠΎΠ΄ΠΈΠ½ Π°Π²ΡΠΎΡ.
ΠΠ΅Π»ΠΈΠΌΡΡ Π½Π° ΠΎΠΏΠ»Π°ΡΡ Ρ
ΠΎΡΡΠΈΠ½Π³Π° ΠΈΠ»ΠΈ ΠΊΠΎΡΠ΅.
Π§Π΅ΠΌ ΡΠ°ΡΠ΅ ΠΏΡΡ ΠΊΠΎΡΠ΅, ΡΠ΅ΠΌ ΡΠ°ΡΠ΅ ΠΏΠΈΡΡ ΡΡΠ°ΡΡΠΈ.
ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ Π² TypeScript
ΠΡΠΈΠ²Π΅Ρ, Ρ Π‘Π΅ΡΠ³Π΅ΠΉ ΠΠ°Ρ ΡΠ°ΠΌΠΎΠ², Π·Π°Π½ΠΈΠΌΠ°ΡΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π½Π° Angular Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π’ΠΈΠ½ΡΠΊΠΎΡΡ. ΠΠΎ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π²ΠΎΡΠ΅Π» Π½Π°ΠΏΡΡΠΌΡΡ Ρ ΡΠ°ΠΉΠΏΡΠΊΡΠΈΠΏΡΠ°, ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ°Π² Π²ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. Π‘ ΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ECMAScript ΡΠ°ΡΡΠΈΡΠΈΠ»Π°ΡΡ, ΠΈ TypeScript ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΡ. ΠΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π±ΠΎΡΡΡΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ², Π²Π΅Π΄Ρ Π±ΠΎΡΡΡΡΡ ΡΠ°ΠΌ Π½Π΅ΡΠ΅Π³ΠΎ? ΠΠΎΠΉ ΠΎΠΏΡΡ ΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ Π΄ΠΆΡΠ½ΠΈΠΎΡ-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΡΠ΅Π±ΡΡΠ° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΊΡΠΎ-ΡΠΎ ΠΏΡΡΡΠΈΠ» Π»Π΅Π³Π΅Π½Π΄Ρ ΠΎΠ± ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ.
ΠΡΠ° ΡΡΠ°ΡΡΡ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ generic-ΡΠΈΠΏΡ Π² TypeScript: Π½Π΅ Π·Π½Π°ΡΡ ΠΎ Π½ΠΈΡ , Π±ΠΎΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² β any .
ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ, ΠΈΠ»ΠΈ Generic Types, β ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ. ΠΠ½ΠΈ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠΎΡ ΠΎΠΆΠΈΡ , Π½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΠΈΡ ΡΡ ΠΊΠ°ΠΊΠΈΠΌΠΈ-ΡΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ ΡΠΈΠΏΠΎΠ². ΠΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΎΠ±ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ, Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°. ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊ β ΡΡΠΎ ΠΊΠ°ΡΠΊΠ°Ρ, Π²Π½ΡΡΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠΏ, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π½Π°Π΅Ρ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ΄Π° ΡΠ΅ΡΠΈΡ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΎΡ, ΠΊΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΠΎΡ ΡΠΈΠΏ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² Π² TypeScript. ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² Π·Π½Π°ΡΠΊΠΎΠ² Π²Π°Π»ΡΡ. Π JavaScript ΠΌΡ Π±Ρ ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ:
Π TypeScript Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ:
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ keyof
ΠΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±Π΅ΡΠ΅Ρ Π²ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π² Π²ΠΈΠ΄Π΅ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΡΠ΅ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Π½Π°ΠΌ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΡΠ°ΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ:
ΠΡΠ»ΠΈ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ ΠΊΠ»ΡΡΠΈ ΠΈΠ· ΡΠΈΠΏΠ° Payment, ΡΡΡ ΠΈ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ keyof.
Π§ΡΠΎ Π΄Π°Π»ΡΡΠ΅?
ΠΡ Π΄Π°Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ². Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΊ Generic Types.
Π‘Π»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π² ΡΠ°Π±ΠΎΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π΄ΠΎ Π½Π°Ρ ΠΈ Π½Π΅ Π²Π»ΠΈΡΠ΅ΠΌ Π½Π° Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΡ ΠΊΠΎΠ΄Π°.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Π½Π°ΠΌ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠ»Π°ΡΠ΅ΠΆΠ° ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅:
ΠΠΎΡΠΎΠΌ ΠΊΡΠΎ-ΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π» Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ΄Π°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°Ρ . Π ΠΎΠ½ ΡΡΠ°Π» ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅:
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΊΠΎΠ΄ Π²Π°Π»ΡΡΡ, Π° Π½Π΅ Π΅Π΅ Π±ΡΠΊΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π° ΡΡΠ°ΡΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΌΡ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄. Π§ΡΠΎΠ±Ρ Π½Π΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΈ Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΡΠ°Π½ΠΈΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠΏ β Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊ:
ΠΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΠΏΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠ»ΠΈ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² ΡΠ°ΠΊΠΎΠΉ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΡΠΎ TypeScript Π²ΠΎΠ·ΡΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅ ΡΠ°ΠΌΡΠΉ ΡΠ΄Π°ΡΠ½ΡΠΉ, Π½ΠΎ ΠΎΠ½ ΡΠ΄Π΅Π»Π°Π½ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° Π² ΠΊΡΡΡ Π΄Π΅Π»Π°, Π΄Π°Π»ΡΡΠ΅ ΠΆΠ΄ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΡΠ΅ ΠΊ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΡΠΎΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΡΠΌΠΈ:
Π’ΠΈΠΏΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΏΠΎΡ ΠΎΠΆΠΈ, Π½ΠΎ Π΅ΡΡΡ ΠΈ ΡΠ°Π·Π»ΠΈΡΠΈΡ β ΠΎΠ½ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΉ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Ρ Ρ ΡΠ°Π·Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΠΈΡ ΡΠΈΠΏΠ°ΠΌΠΈ. Π TypeScript ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΎΠΊ.
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ identity β ΠΎΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π΅ΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ.
ΠΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π²ΠΎΡ ΡΠ°ΠΊ:
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ (Function Declaration) ΡΠ΅ΡΠ΅Π· Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊ. ΠΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (Function Expression):
Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ²
ΠΠ°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΎΠ±ΠΎΠ±ΡΠ°ΡΡ ΠΊΠ»Π°ΡΡΡ? Π£ΠΆΠ΅ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΡ ΡΠ°ΡΡΠΎ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅ΠΌΡ ΡΠΏΠΈΡΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠΎΠΊ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ. ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡ.
Π’ΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ ΠΊΠ»Π°ΡΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅ Ρ TypeScript. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΎΠΏΠΈΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ:
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ:
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ². Generic Constraints
ΠΠ½ΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΡΠΈΠΏ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡΠΉ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠΌ. ΠΠΎΠΊΠ°ΠΆΡ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° length Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°:
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΡΠ΅ Π΅Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ, ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ:
ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΎΠΏΠ°Π΄Π΅Ρ, Π° ΠΏΡΠΈΠΌΠ΅Ρ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΡ, Π±ΡΠ΄Π΅Ρ ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π² Π½Π΅Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ.
ΠΠ°ΠΊΠΎΠΉ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ? ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ ΠΊΠ»ΡΡ, Π° Π²ΡΠ΄Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎ ΠΊΠ»ΡΡΡ:
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°:
ΠΡ ΡΠ°Π½Π½ΠΈΠΊΠΈ ΡΠΈΠΏΠΎΠ²: Type Guards
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ typeof (typeof type guards). TypeScript β ΠΊΠ»Π°ΡΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΈΠΏΡ ΠΈΠ· ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Type Inference ΠΈΠ»ΠΈ Β«Π²ΡΠ²ΠΎΠ΄ ΡΠΈΠΏΠΎΠ²Β».
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π½Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΎ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π΄Π°Π½Π½ΡΠ΅:
ΠΡΠ»ΠΈ ΠΌΡ Π·Π°Ρ ΠΎΡΠΈΠΌ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΈΠΏ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΊΠΎΠ΄Π΅, ΡΠΎ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ typeof :
ΠΠΎΡΠ΅ΠΌΡ typeof null === βobjectβ? ΠΡΠΎ ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ·Π½Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ JS. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠΈΡΠ°ΡΡ Π΅Π³ΠΎ Π±Π°Π³ΠΎΠΌ, ΠΏΠΎΠΏΡΡΠ°ΡΡΡ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ ΠΏΠΎΡΠ΅ΠΌΡ.
ΠΡΠ±Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ ΡΠ°Π½ΠΈΡ ΡΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π±ΠΈΡΠΎΠ². ΠΠ· 32 Π±ΠΈΡ, ΠΎΡΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΠ΅ΡΠΈΠ»ΠΈ 3 Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ΄ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΅Π΅ ΡΠΈΠΏΠ°.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ instanceof (instanceof type guards). ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
Π’ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ. ΠΠ»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΡ Π±Π΅Π· ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ².
User-Defined Type Guards
Π TypeScript Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ β Β«ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΠ°ΠΉΠΏ-Π³Π°ΡΠ΄ΡΒ».
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ:
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»ΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΡ TypeScript, ΡΡΠΎ Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Dog :
Π’Π΅ΠΏΠ΅ΡΡ TypeScript Π½Π΅ ΡΡΠ³Π°Π΅ΡΡΡ, ΠΎΠ½ ΠΏΠΎΠ½ΡΠ» ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ pet :
Π‘Π½Π°ΡΠ°Π»Π° ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΡΠΎ ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
Π’Π°ΠΊΠΆΠ΅ Ρ ΠΎΡΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Type Guard Π²ΡΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² Π»Π΅ΠΆΠΈΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅. ΠΠ½ Π½Π°ΠΏΡΡΠΌΡΡ Π³ΠΎΠ²ΠΎΡΠΈΡ TypeScript: Β«ΠΡΠΎ ΡΠΎΡΠ½ΠΎ Π²ΠΎΡ ΡΡΠΎΡ ΡΠΈΠΏ ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ, Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΒ».
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡ ΡΠ·Π½Π°Π»ΠΈ ΠΏΡΠΎ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ ΠΈ ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·Π°ΡΠΈΡ, Π½Π°ΡΡΠΈΠ»ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½ΠΈΡ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ»Π°ΡΡΡ. Π£Π·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΡΠΈΠΏΡ ΠΈ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠΌΠΎΡΡ TypeScript Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠΏΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π² Type Guard.
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ TypeScript Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅, Π½Π°ΡΠ½ΠΈΡΠ΅ Ρ ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠ΅ ΡΡΠΎΠΈΡ ΠΈΠ·ΡΡΠΈΡΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΏΡΠΎΡΡΠΎ ΡΠ΅Π² ΠΈ ΠΏΠΎΡΠΈΡΠ°Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΎΠ² ΠΈΠ»ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π½Π΅ΠΉ. Π’ΠΎΠ³Π΄Π° ΡΠ»ΠΎΠΆΠΈΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠ·ΡΠΊΠ΅. ΠΡΡΠ΄ Π»ΠΈ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡΡ Π²ΡΠ΅ ΠΈ ΡΡΠ°Π·Ρ, Π½ΠΎ ΡΠΆΠ΅ Π±ΡΠ΄Π΅ΡΠ΅ Π·Π½Π°ΡΡ, Π³Π΄Π΅ ΡΡΠΎ ΠΈΡΠΊΠ°ΡΡ.
ΠΠ»Ρ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠ·ΡΠΊΠ° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠ½ΠΈΠ³Ρ β TypeScript Handbook. ΠΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΡ Ρ ΠΏΠ°ΡΡΠ΅ΡΠ½Π°ΠΌΠΈ, ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΈΠΏΠΎΠ², ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. Π’Π°ΠΌ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΡΡ ΡΠΎΠ½ΠΊΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π΅ Π·Π°Π΄ΡΠΌΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎ.
ΠΡΠ»ΠΈ Π²Ρ Β«ΠΏΠΎΠ·Π½Π°Π»ΠΈ Π΄Π·Π΅Π½Β» Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠ²Π°ΡΡΡΡ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΈ Π½Π°Π±ΠΈΡΡ ΡΡΠΊΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΠ΅ΡΠ°ΡΡ Π·Π°Π΄Π°ΡΠΊΠΈ Type Challenges Π² ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠΌ github-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. Π ΠΏΠ°ΠΏΠΊΠ΅ questions Π·Π°Π΄Π°ΡΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ ΠΏΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠΎΠ½ΡΠΌΠ΅ΡΠΎΠ²Π°Π½Ρ. ΠΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ β ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ΅Π±Ρ.
Π¨ΠΊΠΎΠ»Π° ΠΌΠ°Π³ΠΈΠΈ TypeScript: Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ²
ΠΠ²ΡΠΎΡ ΡΡΠ°ΡΡΠΈ, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ, Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ TypeScript β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΡΡΡΠ°ΡΡΠ΅. ΠΠΎΠ³Π΄Π° ΠΎΠ½ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ°Π» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ TS, Π΅ΠΌΡ ΡΡΡΠ°ΡΠ½ΠΎ Π½ΡΠ°Π²ΠΈΠ»Π°ΡΡ ΡΠ° ΡΠ²ΠΎΠ±ΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΡΡΡΠ° ΡΡΠΎΠΌΡ ΡΠ·ΡΠΊΡ. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΠ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π²ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ Π² ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΌΠΈ Π΄Π»Ρ TS ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ β ΡΠ΅ΠΌ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ ΠΈΠΌ Π²ΡΠ³ΠΎΠ΄Ρ. Π’ΠΎΠ³Π΄Π° ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠΎΠ² Π»ΠΈΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ. ΠΠ½ΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΏΠΎ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, Π½ΠΎ, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, ΠΏΠΎΠ»Π°Π³Π°Π»ΡΡ Π»ΠΈΡΡ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π²ΠΈΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ°Π΅ΠΌΡΡ ΠΈΠΌ Π·Π°Π΄Π°Ρ.
Π ΠΈΡΠΎΠ³Π΅ ΠΎΠ½ ΠΏΡΠΈΡΡΠ» ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π»ΡΡΡΠ΅ ΡΠ°ΠΊ Π½Π΅ Π΄Π΅Π»Π°ΡΡ. ΠΠ½ ΠΏΠΎΠ΄ΡΡΠΆΠΈΠ»ΡΡ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ, Π½Π°ΡΠ°Π» ΠΎΠ±ΡΠ°ΡΠ°ΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΅Π³ΠΎ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΠΊΠΎΠ΄Π΅ ΠΈ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎ Π½ΠΈΡ Π·Π°Π΄ΠΎΠ»Π³ΠΎ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π½Π°Π½Π΅ΡΡΠΈ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ Π²ΡΠ΅Π΄. ΠΠ²ΡΠΎΡ ΡΡΠ°ΡΡΠΈ, Π³Π»ΡΠ΄Ρ Π½Π° ΡΠ΅Π±Ρ ΠΊΠ°ΠΊ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ β ΡΡΠΎ Π΅Π³ΠΎ Π»ΡΡΡΠΈΠΉ Π΄ΡΡΠ³, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π·Π°ΡΠΈΡΠ°Π΅Ρ Π΅Π³ΠΎ ΠΎΡ Π½Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ. ΠΠ°ΠΊ ΡΡΡ Π½Π΅ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ ΡΠ»ΠΎΠ²Π° ΠΠ»ΡΠ±ΡΡΠ° ΠΠ°ΠΌΠ±Π»Π΄ΠΎΡΠ°: Β«Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ°Ρ Ρ ΡΠ°Π±ΡΠΎΡΡΡ, ΡΡΠΎΠ±Ρ Π²ΡΡΡΡΠΏΠΈΡΡ ΠΏΡΠΎΡΠΈΠ² ΡΠ²ΠΎΠΈΡ Π²ΡΠ°Π³ΠΎΠ², Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½ΡΡΠ΅ Π΅Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈ ΡΡΠΎΠ±Ρ Π²ΡΡΡΡΠΏΠΈΡΡ ΠΏΡΠΎΡΠΈΠ² ΡΠ²ΠΎΠΈΡ Π΄ΡΡΠ·Π΅ΠΉΒ».
ΠΠ°ΠΊΠΈΠΌ Π±Ρ Ρ ΠΎΡΠΎΡΠΈΠΌ Π΄ΡΡΠ³ΠΎΠΌ Π½ΠΈ Π±ΡΠ» ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, Π΅ΠΌΡ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π»Π΅Π³ΠΊΠΎ ΡΠ³ΠΎΠ΄ΠΈΡΡ. ΠΠ½ΠΎΠ³Π΄Π° ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠ° any ΠΎΡΠ΅Π½Ρ Π½Π΅ΠΏΡΠΎΡΡΠΎ. Π ΠΏΠΎΡΠΎΠΉ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ any β ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠ°Π·ΡΠΌΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΠ΅ΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΠΎΡΠ²ΡΡΡΠ½ Π΄Π²ΡΠΌ ΡΠΈΡΡΠ°ΡΠΈΡΠΌ. ΠΠ·Π±Π΅ΠΆΠ°Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π½ΠΈΡ ΡΠΈΠΏΠ° any ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ΄Π°, ΠΎΡΠΊΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎ Π΅Π³ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ.
ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, Ρ Π½Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π½ΠΎ Π² Π½Π΅ΠΉ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠΎΠ², Π° ΠΈΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΈ ΡΠΎ, ΡΡΠΎ ΡΠ°ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅Π»ΡΠ·Ρ Π½Π°Π·Π²Π°ΡΡ ΡΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ. ΠΡΠΏΡΠ°Π²ΠΈΠΌ ΡΡΠΎ.
Π’Π°ΠΊ Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠΆΠ΅ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π»ΡΡΡΠ΅. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ΅ΠΏΠ΅ΡΡ Π·Π½Π°Π΅Ρ ΡΠΈΠΏ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΡ Π½Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, ΡΡΠΎ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ Π½Π°ΠΌ ΠΏΠΎΠ·ΠΆΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ, ΠΌΡ ΠΏΠΎΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ. Π§ΡΠΎ Π΅ΡΠ»ΠΈ Π½Π°ΠΌ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΅Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ? ΠΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ»ΠΎ Π±Ρ ΡΠΆΠ΅ Π½ΠΈΠΊΠ°ΠΊ ΡΠ»ΡΡΡΠΈΡΡ. Π ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΠΊ.
Π TypeScript, ΠΊΠ°ΠΊ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΡΠΎ ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ (generics), ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡ Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈΒ», Β«ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈΒ», Β«ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈΒ».
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° keyof β ΡΡΠΎ Π²Π΅ΡΡΠΌΠ° ΠΌΠΎΡΠ½ΡΠΉ ΠΏΡΠΈΡΠΌ. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² IDE, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ TypeScript, ΡΠΎ, Π²Π²ΠΎΠ΄Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ.
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ Ρ Π²Π°Ρ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΡΡΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°ΠΌΠΈ Π² TypeScript, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ, ΡΡΠΎΠ±Ρ ΡΠΎΠ²ΡΠ΅ΠΌ Ρ ΠΎΡΠΎΡΠΎ Π²ΡΡ ΡΡΠ²ΠΎΠΈΡΡ, Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠΌ Π·Π΄Π΅ΡΡ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π³Π»ΡΠ½ΡΡΡ ΡΡΠ΄Π°.
Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΠΈΠΏΠΎΠ²
ΠΡΠ°ΠΊ, ΡΡΠΎΡ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π²Π½Π΅ΡΠ½Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠΎ Π²Π°ΠΌ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Ρ ΠΈΠΌΡΠ½ ( namespace ) ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ»Π΅ userId ΠΊ Request ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Express :
ΠΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π΄Π΅ΡΡ.
ΠΡΠΎΠ³ΠΈ
Π ΡΡΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² Π² TypeScript. ΠΠ°Π΄Π΅Π΅ΠΌΡΡ ΡΠΎ, ΡΡΠΎ Π²Ρ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΠ·Π½Π°Π»ΠΈ, ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Π½Π°Π΄ΡΠΆΠ½ΠΎΠ³ΠΎ, ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ³ΠΎ ΠΈ ΡΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ! ΠΠ°ΠΊ Π²Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠΈΠΏΡ any Π² TypeScript?
ΠΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ (Generics) Π² TypeScript
Sep 25, 2017 Β· 5 min read
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΡ ΡΡΠΎΡΠΎΠ½ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΏΡΠΎΠ΄ΡΠΌΠ°Π½Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΠΈ API. ΠΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΠΌΠ΅ΡΡΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Π½Π°Π±ΠΎΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π±ΠΎΠ»ΡΡΠΈΡ ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ.
Π ΡΠ°ΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ , ΠΊΠ°ΠΊ Java ΠΈΠ»ΠΈ C#, ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠΉ (generics). ΠΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Π² TypeScript
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ½ ΠΊ ΡΠΈΡ βΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΠΈβ (ΡΡΠΎ ΡΠ°ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΎ, ΡΡΠΎ Π΅ΠΉ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°). ΠΠ΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΈΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π² TypeScript ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ any ΡΡΠΎΠ±Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ :
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΠΏ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ, Π² ΡΠ°ΠΌΠΊΠ°Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , Π° Π½Π΅ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ:
ΠΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠ° T ΠΊ Π½Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΠΏ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ, ΠΌΡ ΡΠΊΠ°Π·Π°Π»ΠΈ ΠΈ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎ ΠΈ Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΡΡ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ:
ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ³Π»ΠΎΠ²ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΠΌΡ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°Π»ΠΈ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ , Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±, β Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π² ΡΠ³Π»ΠΎΠ²ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ , Π° ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π² ΡΡΠ½ΠΊΡΠΈΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ TypeScript Π·Π°Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² ΡΠΈΠΏΠ°, ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°.
ΠΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±, Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠ΄ ΠΊΠΎΡΠΎΡΠ΅, Π΅Π³ΠΎ Π»Π΅Π³ΡΠ΅ ΡΠΈΡΠ°ΡΡ, Π½ΠΎ, Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ. ΠΠ΅Π΄Ρ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°ΠΌ Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ, ΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π Π°Π±ΠΎΡΠ° Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°
Π‘Π½ΠΎΠ²Π° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°:
Π§ΡΠΎ, Π΅ΡΠ»ΠΈ ΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Ρ ΠΎΡΠΈΠΌ Π²ΡΠ²Π΅ΡΡΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Ρ?:
Π€ΡΠ½ΠΊΡΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π²ΡΡΠ΅, ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ Array ΡΠ·ΡΠΊΠ° TypeScript:
ΠΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠ»ΠΈΡΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈΡΡ ΡΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ:
Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ» T ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π½Π° Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ. ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ U Π²ΠΌΠ΅ΡΡΠΎ T Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ½ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠΏ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π²ΡΠ΅Π³Π΄Π° Π½Π°ΡΠΈΠ½Π°Π»ΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° T (ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΈΠΏ β Type).
Π’ΠΈΠΏ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ Π»ΠΈΡΠ΅ΡΠ°Π»Π°:
ΠΠΎ ΡΡΡΠΈ, ΡΡΠΎ ΠΈ Π΅ΡΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ ΡΡΠΎΡ Π»ΠΈΡΠ΅ΡΠ°Π» ΠΈ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠΌ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ:
ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠΏ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΠΊΠ°Π·ΡΠ²Π°Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Dictionary Π²ΠΌΠ΅ΡΡΠΎ Dictionary ):
ΠΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ
ΠΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°:
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ, Π½ΠΈΠΊΡΠΎ Π½Π΅ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ Π½Π°ΠΌ Π²ΠΌΠ΅ΡΡΠΎ number ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠΏ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, string :
ΠΠ°ΠΊ ΠΈ Π² ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅, ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠΈΠΏΠ° Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° Π³ΠΎΠ²ΠΎΡΠΈΡ Π½Π°ΠΌ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ»Π°ΡΡΠ° Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄Π°Π½Π½ΡΠΌ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ .
Π ΡΡΠ°ΡΡΠ΅ ΠΎ ΠΊΠ»Π°ΡΡΠ°Ρ ΡΠ·ΡΠΊΠ° TypeScript Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ, ΡΡΠΎ ΠΊΠ»Π°ΡΡ ΡΡΠ»ΠΎΠ²Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° Π΄Π²Π΅ ΡΠ°ΡΡΠΈ: ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΈ ΡΠ°ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ. Π’Π°ΠΊ Π²ΠΎΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΡΠ°ΡΡΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ°. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΆΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΏΠ°, ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°.
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΡΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅:
Π ΡΡΠΎ Π΅ΡΠ»ΠΈ Π΅ΡΡΡ Π΅ΡΠ΅ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΠΉ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΈ ΠΎΠ½ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ? ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ TypeScript ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ, Ρ.Π΅. ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΈΠΏΠ° Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠ·Π½Π°ΡΠ°ΡΡ, ΡΡΠΎ Π² Π΄Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ .
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠΈΠΏΠ° Π² ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ
ΠΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΡΠΈΠΏΠΎΠΌ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠΈΠΏΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ. Π Π½Π°ΠΌ ΠΎΡΠ΅Π½Ρ Π½Π΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΏΡΡΠ°Π»ΠΈΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π²Π²Π΅ΡΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΏΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ΠΊΠ»Π°ΡΡΠΎΠ² Π² ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡΡ
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ°Π±ΡΠΈΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² TypeScript Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΠΈΠΏΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π² ΡΡΠ½ΠΊΡΠΈΡΡ -ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°Ρ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΠΈΠΏΡ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π±ΡΠΈΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ²:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
Π ΡΡΡΡΠΊΠΎΡΠ·ΡΡΠ½ΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ΅ ΠΏΠΎ ΡΠ·ΡΠΊΠ°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, C#), Generics ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΊΠ°ΠΊ β ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡβ. Π, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ°ΠΊ ΡΡΠ°Ρ Π² ΠΠ£ΠΠ°Ρ . ΠΠΈΡΠ½ΠΎ ΠΌΠ½Π΅ Π±Π»ΠΈΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π° β Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈβ Π²ΠΌΠ΅ΡΡΠΎ β ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡβ. ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄ ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.