Есть ли способ получить имя типа вызывающего объекта в TypeScript? В качестве альтернативы есть способ получить имя типа текущего объекта?Тип Обнаружение в TypeScript
Что-то вроде:
export class SomeData {
sampleFunc() {
console.log(this.getTypeName());
}
//or
anotherFunc(caller: any) {
console.log(caller.getTypeName());
}
}
getTypeName
является желаемой функциональностью здесь. Типы в TypeScript исчезают после компиляции. Существует typeof
(для получения самого объекта определения класса), но я не вижу, как получить имя .
Одно использование для этого может быть более чистым вводом в эксплуатацию с console.group(name)
и console.groupEnd()
- по крайней мере, во время разработки.
Edit:
Насколько я искал, есть Polyfill for Metadata Reflection API предложение «добавить декораторов к ES7, вместе с прототипом в Reflection API ES7 для декоратор метаданных». Это можно использовать совместно с decorators in TypeScript.
Вы можете обновить с образцом кода, что именно вы пытаетесь достичь? Я знаю, что вы можете использовать caller.name, но получение типа не возможно, поскольку такие же правила применяются, как и для JavaScript, когда скомпилирован TypeScript. Возможно, это поможет вам http://stackoverflow.com/a/3789144 –
@MatijaGrcic Спасибо; Я обновил вопрос. BTW на chrome, 'arguments.callee.caller.name' по-прежнему дает тело функции. –
Вы также можете попробовать: http://vorlonjs.io/ –