这可以正常使用AFAIK:
(function f() {
console.log(f.name); //logs f
})();
但是某些答案posted here更长了,这使我认为我可能缺少上面的语句的陷阱(换句话说,在这种情况下,它是可行的,但是...)? / p>
这是稍微不同的打字稿变体:
function f1() {}
function f2(f:Function) {
console.log(f.name);
}
f2(f1);
答案 0 :(得分:0)
Function.name
属性仅在符合ES6 / ES2015的引擎中可用。因此,例如,如果您尝试在Typescript中不进行其他配置的情况下访问它,则会收到错误消息:
[ts]属性“名称”在类型“函数”上不存在。
因此,对于打字稿,在您的--lib值中包含es2015
以获取属性声明。
{
"compilerOptions": {
...
"lib": ["es2015"], /* Specify library files to be included in the compilation. */
...
}