export class InvalidCredentialsError extends Error {
constructor(msg) {
super(msg);
this.message = msg;
this.name = 'InvalidCredentialsError';
}
}
如上所示,我正在写InvalidCredentialsError
两次。有没有办法以某种方式在构造函数方法中获取类名并设置它?或者该对象是否必须实例化?
答案 0 :(得分:4)
在具有原生ES6类支持的浏览器中,this.constructor.name
将显示 InvalidCredentialsError 。如果您使用Babel转换代码,则会显示错误。
不使用Babel(在Chrome或其他支持类的浏览器上使用):
class InvalidCredentialsError extends Error {
constructor(msg) {
super(msg);
console.log(this.constructor.name);
this.message = msg;
this.name = 'InvalidCredentialsError';
}
}
const instance = new InvalidCredentialsError('message');

使用Babel:
class InvalidCredentialsError extends Error {
constructor(msg) {
super(msg);
console.log(this.constructor.name);
this.message = msg;
this.name = 'InvalidCredentialsError';
}
}
const instance = new InvalidCredentialsError('message');