【发布时间】:2018-01-26 10:31:49
【问题描述】:
我想从 Typescript 中类的实例方法中获取当前方法的名称。
(伪代码,不起作用):
class Foo {
bar() {
console.log(something); //what should something be?
}
}
new Foo().bar();
我希望 'something' 返回 'bar'。我意识到this 可以给我类,我可以通过某种方式从中获取类及其属性,但我不知道如何获取“此函数”(即方法栏,而不是类 Foo)。
我见过其他几个与查找类名等相关的问题,但没有一个涉及获取当前方法名的问题。
【问题讨论】:
-
为什么需要知道方法的名称?你打电话给它是为了知道它的名字。
-
这不是一个真正的打字稿问题... :)
-
@Rienk - 我正在尝试做一些更复杂的事情(特别是打字稿中 ruby 的 method_missing 行为),但作为一个更简单的例子,假设我有带有(大量方法)的遗留代码,如 @ 987654325@ 和
getBar(),我想使用getObject(objName)函数来处理所有这些,该函数解析函数名称,并按名称从字典中返回对象。我想在每个这样的函数中调用getObject(thisFuncName)而不必更改每个这样的函数来说出getObject('foo')等内容。 -
Anand:然后用您想要使用 TypeScript 实现的模式打开一个新问题。我认为这样会更好。正如@Kokodoko 所说,这不是 TypeScript,而是 JavaScript。
-
有arguments.callee.name,但是在严格模式下不起作用,类方法在严格模式下执行。您可以尝试使用Proxy,但并非所有浏览器都支持代理..
标签: javascript typescript