Я хотел бы расширить объект-хост Error
до пользовательского класса UploadError
. Следующий пример не выполняется при компиляции:
class UploadError extends Error {
constructor(message: string, private code: number) {
super(message);
}
getCode(): number {
return this.code;
}
}
Когда я запускаю компилятор TypeScript tsc
, я получаю следующую ошибку:
UploadError.ts(1,0): A export class may only extend other classes, Error is an interface.
Кажется, что Error
определяется как интерфейс. Если кто-нибудь знает, что имя реализации это сделает меня очень счастливым: -)
Обновление: я хочу использовать наследование типов наследования, а не прототипическое наследование, которое я сейчас использую, чтобы взломать это:
function UploadError (message: string, code: number) {
this.message = message;
this.code = code;
}
UploadError.prototype = new Error();
UploadError.prototype.constructor = UploadError;
UploadError.prototype.getCode = (): number => {
return this.code;
}