سادهترین نحو برای یک تابع لامبدا در تایپاسکریپت که یک شیء لغتنامهای برمیگرداند


تابع جاوااسکریپت را در نظر بگیرید:

function(o) { return o.a; }

در تایپاسکریپت، کوتاهنویسی زیر معادل است:

o => o.a

آیا راهی وجود دارد که این نوشتار کوتاه را به تابع زیر اعمال کنیم؟

function(o) { return { a: o.a, b: o.b }; }

تبدیل واضح کار نمیکند زیرا آکولاد باز ({) بهعنوان نشاندهنده نیاز به یک بلوک تفسیر میشود:

o => { a: o.a, b: o.b }                // doesn't work

o => { return { a: o.a, b: o.b }; }    // works

پاسخ شماره ۱

هیچ راهی وجود ندارد تا دستور زبان در این زمینه { را به عنوان یک شیء لغوی به جای بلوک دستور تفسیر کند، اما میتوانید از پرانتزها استفاده کنید تا مجبور شود که به عنوان یک عبارت تفسیر شود:

var x = (t) => ({ n: t });