Typescript: ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ «этого» Π² VS2013 ΠΏΡ€ΠΈ использовании лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 4 Π°ΠΏΡ€. 2015  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: microsoft/TypeScript

Π― ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠ΄ TypeScript с использованиСм ТСстко Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π·Π°Ρ…Π²Π°Ρ‚Π° «этого»:

var _this = this;
var querySucceeded = function(data){
    this.doSomething(data);
}
var test = this.executeQuery().then(function(data){
    _this.querySucceeded(data);
});

для использования лямбд:

var querySucceeded = function(data){
    this.doSomething(data);
}
var test = this.executeQuery().then((data) => {
    this.querySucceeded(data);
});

TypeScript ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ JS Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΈ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ Π² Visual Studio. Когда я ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽ "это" послС лямбда, ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ свойства ΠΎΠΊΠ½Π°, Π° Π½Π΅ контСкст класса.

Если я ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°ΡŽ прямо Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ контСкст Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½. Π­Ρ‚ΠΎ извСстная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°? ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с сопоставлСниями ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»ΠΎΠΌ JS ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠΌ TS?

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ VS2013 Update 4 ΠΈ TypeScript 1.4.

Needs Proposal Suggestion Visual Studio

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π­Ρ‚ΠΎ всС Π΅Ρ‰Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΊΠΎΠ΄ΠΎΠΌ vs с es5 ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ стрСлки, это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°Π΅Ρ‚, Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ с Π±ΠΎΠ»Π΅Π΅ высоким ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ.

ВсС 3 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π½Π΅ Π·Π½Π°Π΅Ρ‚ ΠΎ typescript, ΠΎΠ½ Π·Π½Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ javascript ΠΈ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚Ρƒ. Ρ„Π°ΠΉΠ» исходной ΠΊΠ°Ρ€Ρ‚Ρ‹ просто пСрСчисляСт сопоставлСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΠ· источника (.ts) Π² Ρ†Π΅Π»ΡŒ (.js), Π½ΠΎ Π½Π΅ отслСТиваСт ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, _this).

ΠœΡ‹ Π·Π½Π°Π΅ΠΌ ΠΎΠ± этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅, ΠΈ ΠΎΠ½Π° сущСствуСт ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ. ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° сСйчас Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ большС Ρ‚Π°ΠΊΠΈΡ… пСрСписываний с измСнСниями свойств let, const, destructuring ΠΈ вычисляСмых свойств.

Когда 2859 Π±ΡƒΠ΄Π΅Ρ‚ исправлСно, это Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ «просто Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΒ» Π² инструмСнтах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° IE, Ρ‚. Π•. Он Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄. Однако Π² настоящСС врСмя ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠ° Π² Visual Studio Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π°.

Π­Ρ‚ΠΎ всС Π΅Ρ‰Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΊΠΎΠ΄ΠΎΠΌ vs с es5 ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ стрСлки, это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°Π΅Ρ‚, Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ с Π±ΠΎΠ»Π΅Π΅ высоким ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ