如何从打字稿中的父类中获取子类的名称?

如何从基类本身获得子类的名称(即调用基类的构造函数)TypeScript。我有一些代码设置为:如何从打字稿中的父类中获取子类的名称?

class Animal{ 

constructor(){ console.log(this.constructor.name)} //this is throwing error}

}

class Cow extends Animal{

constructor(){ super() }

}

new Cow() // this should log "Cow"

在用于工作,但似乎这架飞机Jsthis.constructor.nameTypeScript的情况。 我得到的错误是:

error TS2339: Property 'name' does not exist on type 'Function'. 

请帮忙。谢谢

回答:

这应该失败的唯一原因是在Internet Explorer/IE Mobile中,因为Function.name基本支持不存在。在所有其他浏览器中,它应该可以工作。

如果您的目标是ESNEXT并且输出包含ECMAScript类(即与TypeScript类似),则此功能甚至可以工作。下面的代码可以在快节奏的快乐浏览器中工作......并且如果通过TypeScript编译器运行它,纯文本也可以工作(除非如上所述)。

class Animal {  

constructor() {

console.log(this.constructor.name);

}

}

class Cow extends Animal{

constructor() {

super();

}

}

new Cow();

以上是 如何从打字稿中的父类中获取子类的名称? 的全部内容, 来源链接: utcz.com/qa/260260.html

回到顶部