【问题标题】:How to tell the class of an instance如何告诉实例的类
【发布时间】:2019-03-05 16:15:14
【问题描述】:

有没有办法告诉 Typescript 中的对象是什么类实例?我的意思不仅仅是“对象”。

如果你有这个:

const x : MyClass = new MyClass();
console.log(typeof(x));

你会得到:

'Object'

如果你这样做了:

console.log(x instanceof MyClass);

你会得到:

Uncaught ReferenceError: MyClass is not defined

我怎样才能让它打印出'MyClass'?

【问题讨论】:

  • 知道 TypeScript 中的实例类型无济于事。为了console.log() 它,您必须能够在运行时找出 JavaScript 中的类名。

标签: typescript instanceof typeof


【解决方案1】:

您可以使用x.constructor.name

对象的.constructor 属性包含对创建实例的构造函数(类函数)的引用,而函数的.name 属性保留其名称。

这是 JavaScript,不涉及 TypeScript。 TypeScript 类型在这里没有帮助,它们在编译为 JavaScript 代码时消失了。

【讨论】:

  • 感谢 axiac,这正是我所需要的。
  • @gib65:请注意,名称可能会因缩小而出现乱码。
猜你喜欢
  • 1970-01-01
  • 2021-06-10
  • 2016-08-15
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
  • 2011-09-21
  • 2019-03-10
  • 1970-01-01
相关资源
最近更新 更多