πΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° TypeScriptπ
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ
ΠΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ
Π»ΡΠ±ΠΈΠΌΡΡ
ΡΠ΅ΡΡ JavaScript β ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠ°Π³Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΡΠΎΡΒ
ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄, ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ Π±ΡΠ°ΡΠ·Π΅Ρ, Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎΠ±ΠΎ Π²ΡΠ΅ΠΌ
ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ. ΠΠ΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΆΠ΄Π°ΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ, ΠΏΠΎΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ Π·Π°ΠΊΠΎΠ½-
ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄.
Π₯ΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΡΠΎ ΠΊΠ°ΠΊ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ, Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΡΠΈΠ½, ΠΏΠΎ ΠΊΠΎ-
ΡΠΎΡΡΠΌ Π²Ρ Π·Π°Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π³ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ
Π³Π»ΡΠΏΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΏΡΡΠ΅Π½Π½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ ΠΈΠ»ΠΈ Π·Π°ΠΏΡΡΡΠ΅. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ
Π½Π°ΠΉΡΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π½Π΅Π²Π½ΡΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ°Π²ΡΡ-
ΠΊΠΈ (') ΡΠ°ΠΌ, Π³Π΄Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π²ΠΎΠΉΠ½Π°Ρ ΠΊΠ°Π²ΡΡΠΊΠ° ("). ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡ-
ΡΠΈΠΊ JavaScript ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΡΡΡΠ°ΡΠ½ΡΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ ΠΎ ΡΠ°ΡΠ°Ρ
, ΠΏΠΎΡΡΠ°ΡΠ΅Π½Π½ΡΡ
Π½Π° ΠΏΠΎΠΈΡΠΊ
ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠ΄Π΅, ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ ΠΎΠ½ ΠΏΡΠΎΠΏΡΡΡΠΈΠ» ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ
Π·Π°ΠΊΡΡΠ²Π°ΡΡΡΡ ΡΠΊΠΎΠ±ΠΊΡ } ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΡΡ Π·Π°ΠΏΡΡΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π³Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎ-
ΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π±ΠΎΠ»ΡΡΠΎΠΉ Π±Π°Π·ΠΎΠΉ ΠΊΠΎΠ΄Π°. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ°ΡΠ°Ρ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΊΠ°,
Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ, ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π½ΠΎ Π²ΡΡ
ΠΎΠ΄ΠΈΡΡ ΠΈΠ· ΡΡΡΠΎΡ ΠΈ Π³ΡΠΎΠΌΠΊΠΎ Π²ΡΡ
ΠΎΠ΄ΠΈΡΡ
ΠΈΠ· ΡΡΡΠΎΡ, Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ Π³ΡΠΎΠΌΠΊΠΎ ΠΊΡΠΈΡΠ°ΡΡ Π½Π° ΡΠ°ΠΌΠΎΠΉ ΡΠ°Π½Π½Π΅ΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ
ΡΡΠ°Π΄ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π±ΡΠ΄ΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Ρ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π»ΡΠ±Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΈΠ·-
ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π° ΠΎΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΡ
ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎ-
ΡΠΎΠΌ.
ΠΡΠΈ Π²Π½Π΅ΡΠ΅Π½ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π±ΠΎΠ»ΡΡΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π·Ρ Π½Π°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ±Π΅-
Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΌΡ Π½Π΅ Π½Π°ΡΡΡΠ°Π΅ΠΌ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ. Π Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎ-
ΠΌΠ°Π½Π΄Π΅ ΡΡΠΎ ΡΠ°ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈΡ-
Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π³Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π΄ΠΎ, Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈΠ·
ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ Π΄Π°Π΅Ρ Π½Π°ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ Π½Π΅
ΡΠΎΠ²Π΅ΡΡΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈΠ»ΠΈ ΡΡΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ
Π΄ΠΎΠΏΡΡΠ΅Π½ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ.
ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ, ΡΠ΅Ρ-
Π²Π΅Ρ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ (CI) ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΌ Π·Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅
ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ Π·Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡΠ° ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ
ΠΈ ΠΈΠ½ΡΠ΅-
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ TypeScript ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ²
Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
ΡΠ΅ΡΡΠΎΠ² Π΄Π»Ρ Π²Π½ΠΎΠ²Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ
ΡΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡ
ΠΎΠ΄ΡΡ Π½Π° ΡΠ±ΠΎΡΠΊΡ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π³Π°ΡΠ°Π½ΡΠΈΡΡΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈ-
ΡΠ΅ΡΠΊΠΈΡ
ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΊΠΎΠ΄Π΅, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΈ Π·Π°ΠΏΡΡΠΊΡ ΡΠ΅ΡΡΠΎΠ².
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΊΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ ΡΠ°Π½Π΅Π΅, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ TypeScript ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½ Π½Π°
Π²ΡΠ²ΠΎΠ΄ ES3, ES5 ΠΈΠ»ΠΈ ES6 JavaScript. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ
Π½Π° ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ Π±Π°Π·Ρ ΠΊΠΎΠ΄Π°.
Π‘ΠΈΠ»ΡΠ½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ
JavaScript Π½Π΅ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΡΠΉ ΡΠ·ΡΠΊ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΏΠΎ-
Π·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° Π»Π΅ΡΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅-
ΡΠ° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄:var test = "this is a string;
console.log('test=' + test);
test = 1;
console.log('test=' + test);
test = function (a, b) {
return a + b;
}
console.log('test=' + test);
Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΡΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ test ΠΈ Π΅ΠΉ ΠΏΡΠΈ-
ΡΠ²ΠΎΠ΅Π½ΠΎ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π§ΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΡΡΠΎΠΌ, ΠΌΡ Π·Π°ΠΏΠΈΡΠ°Π»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½-
ΡΠΎΠ»Ρ. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ test ΠΈ ΡΠ½ΠΎΠ²Π° Π·Π°ΠΏΠΈΡΡ-
Π²Π°Π΅ΠΌ Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ
ΠΊΠΎΠ΄Π°. ΠΡ Π½Π°Π·Π½Π°ΡΠ°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
test. ΠΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΠΌ ΡΡΠΎΡ ΠΊΠΎΠ΄, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ:test = this is a string
test = 1
test = function (a, b) {
return a + b;
}
ΠΠ΄Π΅ΡΡ ΡΡΠ½ΠΎ Π²ΠΈΠ΄Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π²Π½ΠΎΡΠΈΠΌ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ test. ΠΠ½Π° ΠΌΠ΅-
Π½ΡΠ΅ΡΡΡ, ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Ρ ΠΎΡ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΌΡ, Π° Π·Π°ΡΠ΅ΠΌ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΠ½ΠΊ-
ΡΠΈΠ΅ΠΉ.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΎΠΏΠ°ΡΠ½ΡΠΌ
Π·Π°Π½ΡΡΠΈΠ΅ΠΌ ΠΈ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π±Π΅ΡΡΠΈΡΠ»Π΅Π½Π½ΡΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΎΠ±Ρ-
Π΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠΈΠ»ΡΠ½ΡΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎ-
Π²Π°ΠΌΠΈ, ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΈΡΠΎΠ΄Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ TypeScript ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ²
Π₯ΠΎΡΡ Π²Π΅ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ JavaScript β ΠΈ ΠΌΠΎ-
ΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΠ°Π²Π΄Π°Π½, β Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π²ΠΈΠ΄Π½ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ
Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Π²Ρ Π±ΡΠ»ΠΈ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½Ρ Π·Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅
Π±ΠΈΠ±Π»ΠΈΠΎΒΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π΄Π²ΡΡ
ΡΠΈΡΠ΅Π», Π° Π·Π°ΡΠ΅ΠΌ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡ-
ΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΏΡΠ΅Π΄Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠΈΠ» Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎ-
Π±Ρ Π²ΡΡΠΈΡΠ°ΡΡ ΡΡΠΈ ΡΠΈΡΠ»Π°.
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΠΎΡΠΈΠ±ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΡΡΠΎΠΊΠ°Ρ
ΠΊΠΎΠ΄Π°, Π½ΠΎ
Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΡ
ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ ΠΊΠΎΠ΄Π° ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·-
ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π±ΡΠ΄Π΅Ρ Π²ΡΠ΅ ΡΡΡΠ΄Π½Π΅Π΅.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Ρ Π°Ρ
TypeScript ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΠΎ
Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΡΠΎΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΠΊ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Ρ
Π°Ρ, ΠΈΠ»ΠΈ, Π±ΠΎ-
Π»Π΅Π΅ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΡΠΈΠΏΠΎΠ². Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π½ΠΈΠΆΠ΅ Π²Π΅ΡΡΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ
ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° JavaScript, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½Π° TypeScript:
var test: string = "this is a string";
test = 1;
test = function(a, b) { return a + b; }
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΡΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΌΡ Π²Π²Π΅Π»ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ :
ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ string ΠΌΠ΅ΠΆΠ΄Ρ Π½Π°ΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ Π΅Π΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠΡΠΎΡ
ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠ° ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠΈΠΏ Π½Π°ΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½-
Π½ΠΎΠΉ ΠΊΠ°ΠΊ ΡΠΈΠΏ string ΠΈ ΡΡΠΎ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΡΠΈΡ
ΠΏΡΠ°Π²ΠΈΠ»,
ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ
TypeScript Π²ΡΠ·ΠΎΠ²Π΅Ρ Π΄Π²Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ:
hello.ts(3,1): error TS2322: Type 'number' is not assignable to
type 'string'.
hello.ts(4,1): error TS2322: Type '(a: any, b: any) => any' is
not assignable to type 'string'.
ΠΠ΅ΡΠ²Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π°. ΠΡ ΡΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ test ΡΠ²Π»ΡΠ΅ΡΡΡ
ΡΡΡΠΎΠΊΠΎΠΉ, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠΏΡΡΠΊΠ° ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π΅ΠΉ Π½ΠΎΠΌΠ΅Ρ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΡΠΎΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΠΎΡ
ΠΎΠΆΠ° Π½Π° ΠΏΠ΅ΡΠ²ΡΡ ΠΈ, ΠΏΠΎ ΡΡΡΠΈ, Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈ-
ΡΠ²ΠΎΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΡΡΠΎΠΊΠ΅.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ TypeScript Π²Π²ΠΎΠ΄ΠΈΡ ΡΠΈΠ»ΡΠ½ΡΡ ΠΈΠ»ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠΈΠΏΠΈ-
Π·Π°ΡΠΈΡ Π² Π½Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ JavaScript, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ Π½Π°ΠΌ Π²ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΈ-
ΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°. ΠΠΎΡΡΠΎΠΌΡ TypeScript ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ Π²Π°ΡΠΈ-
Π°Π½Ρ JavaScript.
ΠΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ
ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌ-
ΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°-
Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, Π² Π΅Π΄ΠΈΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ.
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠ΅ΠΉ ΠΊΠ»Π°ΡΡΠ° Π΄Π»Ρ ΡΡΠΎΠΉ
ΡΠ΅Π»ΠΈ β ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π° Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ
ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
ΡΡΠ½ΠΊ-
ΡΠΈΠΉ.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΎΡΡΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° TypeScript:class MyClass {
add(x, y) {
return x + y;
}
}
var classInstance = new MyClass();
var result = classInstance.add(1,2);
console.log('add(1,2) returns ${result}');
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ. ΠΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΊΠ»Π°ΡΡ MyClass
Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ add. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΒ
Π»ΡΡ ΠΊΠ»Π°ΡΡΠ° ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ add Ρ Π΄Π²ΡΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ.
JavaScript, ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ES6, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΊΠ»Π°ΡΡΠ°, Π½ΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΈΡ-
ΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ½ΠΊΠ°ΠΏΡΡΠ»Ρ-
ΡΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΊΠ»Π°ΡΡΡ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΠΈΠ±ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ°, Π»ΠΈΠ±ΠΎ ΡΠ°Π±Π»ΠΎ-
Π½Π° Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ. ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΎΠ² ΠΈ ΡΠ°Π±Π»ΠΎΠ½Π° Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΠΈ ΠΈΡ
ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΡΠ°ΡΡΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌ Π½Π°Π²ΡΠΊΠΎΠΌ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° Π½Π°
JavaScript ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ β ΡΡΠΎ, ΠΏΠΎ ΡΡΡΠΈ, ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½-
Π½ΡΠ΅. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ, Π·Π°ΠΏΠΎ-
ΠΌΠΈΠ½Π°ΡΡ ΡΡΠ΅Π΄Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ JavaScript ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ
Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ. ΠΠ°ΠΏΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ
MyClass Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ Π² JavaScript Π±ΡΒΠ΄Π΅Ρ Π²Ρ-
Π³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:var MyClass = (function () {
// ΡΠ°ΠΌΠΎΠ²ΡΠ·ΡΠ²Π°ΡΡΠ°ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ β ΡΡΠΎ ΡΡΠ΅Π΄Π°,
// ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ;
function MyClass() {
// MyClass β ΡΡΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ,
// Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅;
}
MyClass.prototype.add = function (x, y) {
return x + y;
};
return MyClass;
})();
var classInstance = new MyClass();
var result = classInstance.add(1, 2);
console.log("add(1,2) returns " + result);
ΠΡ Π½Π°ΡΠ½Π΅ΠΌ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ MyClass ΠΈ Π½Π°Π·Π½Π°ΡΠΈΠΌ Π΅Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ
Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, β ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° }) (); ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅-
Π»Π΅Π½ΠΈΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ. ΠΡΠΎΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π½Π°ΠΏΠΈΡΠ°-
Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° JavaScript Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½-
ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ MyClass ΠΈ Π²ΠΎΠ·Π²ΡΠ°-
ΡΠ°Π΅ΠΌ Π΅Π΅ Π²Π½Π΅ΡΠ½Π΅ΠΉ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅
ΡΠ»ΠΎΠ²ΠΎ prototype, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ MyClass. ΠΡΠ°
ΡΡΠ½ΠΊΡΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ add ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Ρ ΠΈΡ
ΡΡΠΌΠΌΡ.
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ΄Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΠΈΡ-
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ Π² JavaScript. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΈΠΏΠ° Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ,
Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ add. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ
add(1,2) returns 3 Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ, ΠΊΠ°ΠΊ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ.
Π‘ΡΠ°Π²Π½ΠΈΠ² ΠΊΠΎΠ΄ JavaScript Ρ ΠΊΠΎΠ΄ΠΎΠΌ TypeScript, Π»Π΅Π³ΠΊΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΠΎ Π²Ρ-
Π³Π»ΡΠ΄ΠΈΡ TypeScript ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΠΌ JavaScript. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΠΌΡ ΡΠΏΠΎ-
ΠΌΠΈΠ½Π°Π»ΠΈ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π½Π° JavaScript ΠΌΠΎΠ³ΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΡΠ΅ΡΡΡΡ ΡΠΈΠ³ΡΡΠ½ΡΡ { ΠΈΠ»ΠΈ
ΠΎΠ±ΡΡΠ½ΡΡ ( ΡΠΊΠΎΠ±ΠΊΡ? ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ:
})(); Π½Π° ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΊΠΎΠΉ ΡΠΊΠΎΠ±ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΉΡΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΎΠ² ΠΎΡΠ»Π°Π΄ΠΊΠΈ.