Typescript: Sintaks Lambda berbeda antara mengembalikan objek primitif dan mengembalikan

Dibuat pada 31 Okt 2016  ·  1Komentar  ·  Sumber: microsoft/TypeScript



Versi TypeScript: 2.0.3 / malam (2.1.0-dev.201xxxxx)

Kode

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

Perilaku yang diharapkan:
Saya berharap itu dapat dikompilasi dengan baik. fn_prim harus mengembalikan 3 saat dipanggil, fn_obj harus mengembalikan { val: 3 } saat dipanggil.

Perilaku sebenarnya:
Kesalahan "Label tidak digunakan" pada val:

Question

Komentar yang paling membantu

TypeScript mengikuti ES spec dan per spec contoh kedua Anda adalah fungsi panah di mana body adalah fungsi body yang dibungkus { } jadi val: 3 ditafsirkan sebagai pernyataan berlabel dengan label val dan pernyataan ekspresi dengan ekspresi 3 . Untuk menjadikannya fungsi panah yang mengembalikan literal objek, Anda harus membungkusnya dengan parens:

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

Tautan terkait: MDN: Fungsi panah , bagian Returning object literals

>Semua komentar

TypeScript mengikuti ES spec dan per spec contoh kedua Anda adalah fungsi panah di mana body adalah fungsi body yang dibungkus { } jadi val: 3 ditafsirkan sebagai pernyataan berlabel dengan label val dan pernyataan ekspresi dengan ekspresi 3 . Untuk menjadikannya fungsi panah yang mengembalikan literal objek, Anda harus membungkusnya dengan parens:

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

Tautan terkait: MDN: Fungsi panah , bagian Returning object literals

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

wmaurer picture wmaurer  ·  3Komentar

jbondc picture jbondc  ·  3Komentar

Antony-Jones picture Antony-Jones  ·  3Komentar

blendsdk picture blendsdk  ·  3Komentar

CyrusNajmabadi picture CyrusNajmabadi  ·  3Komentar