TypeScript 对象速记中的函数定义应生成命名函数定义,而不是匿名函数

mzaanser  于 2022-10-29  发布在  TypeScript
关注(0)|答案(4)|浏览(156)

顺便说一句,在获取对象速记方面做得很好

let logger = {
   log(str){
      console.log(str)
   }
};

产生

var logger = {
    log: function (str) {
        console.log(str);
    }
};

因为它变成了一个匿名函数,所以在堆栈跟踪中并不突出。发出这个函数会使调试和堆栈跟踪变得更好。

var logger = {
    log: function log (str) {
        console.log(str);
    }
};
1rhkuytd

1rhkuytd2#

我不认为这是一个bug?根据MDN它应该是这样工作的,但是我可能错了ofc https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Method_definitions

u0njafvf

u0njafvf3#

Babel也是这样做的。堆栈跟踪是超级有帮助的。Chrome中的Es6输出代码也是这样做的。
2017年3月24日星期五上午5:11 Martin Hochel***@***.***〉写道:我不认为这是一个bug?根据MDN,它应该是这样工作的,但我可能是错的c https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Method_definitions-你收到这封邮件是因为你创作了这个线程。直接回复这封邮件,在GitHub〈#6757(comment)〉上查看它,或者将线程静音< https://github.com/notifications/unsubscribe-auth/AA-JVGu6kIWvXqLyzHAn4BpWXHoiEFUYks5ro7MHgaJpZM4HP2CM >。

kqlmhetl

kqlmhetl4#

@Hotell在如何传递方面是正确的。它们的名称应该根据规范中定义的运行时语义来推断

相关问题