Typescript: Лямбда-синтаксис отличаСтся ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠΌ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 31 ΠΎΠΊΡ‚. 2016  Β·  1ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: microsoft/TypeScript



ВСрсия TypeScript: 2.0.3 / nightly (2.1.0-dev.201xxxxx)

Код

// A *self-contained* demonstration of the problem follows...
const fn_prim = () => 3;
const fn_obj = () => {
    val: 3
};

ОТидаСмоС повСдСниС:
Π― оТидаю, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ скомпилируСтся. fn_prim Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ 3 ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅, fn_obj Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ { val: 3 } ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅.

ЀактичСскоС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅:
Ошибка "ΠΠ΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ярлык" Π² val:

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

TypeScript слСдуСт спСцификации ES, ΠΈ Π² соотвСтствии со спСцификациСй ваш Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ - это стрСлочная функция, Π³Π΄Π΅ Ρ‚Π΅Π»ΠΎ - это Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΠΎΠ΅ Π² { } поэтому val: 3 интСрпрСтируСтся ΠΊΠ°ΠΊ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ с ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ val ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ 3 . Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ стрСлочной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² скобки:

const fn_obj = () => ({
    val: 3
});

Бсылка ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅: MDN: стрСлочныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ , Ρ€Π°Π·Π΄Π΅Π» Returning object literals

>ВсС замСчания

TypeScript слСдуСт спСцификации ES, ΠΈ Π² соотвСтствии со спСцификациСй ваш Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ - это стрСлочная функция, Π³Π΄Π΅ Ρ‚Π΅Π»ΠΎ - это Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΠΎΠ΅ Π² { } поэтому val: 3 интСрпрСтируСтся ΠΊΠ°ΠΊ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ с ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ val ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ 3 . Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ стрСлочной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² скобки:

const fn_obj = () => ({
    val: 3
});

Бсылка ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅: MDN: стрСлочныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ , Ρ€Π°Π·Π΄Π΅Π» Returning object literals

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