我试图抛出一个自定义错误,我的"CustomError"类名称打印在控制台而不是"错误",但没有成功:
class CustomError extends Error {
constructor(message: string) {
super(`Lorem "${message}" ipsum dolor.`);
this.name = 'CustomError';
}
}
throw new CustomError('foo');
Run Code Online (Sandbox Code Playgroud)
输出是Uncaught Error: Lorem "foo" ipsum dolor
.
我的期望:Uncaught CustomError: Lorem "foo" ipsum dolor
.
我想知道是否只能使用TS来完成(没有搞乱JS原型)?
当试图将一个简单的JS文件转换为TS而隐式"any"被禁用时,我收到此错误:
错误TS7009:'new'表达式,缺少构造函数签名,隐式具有"any"类型.
interface Logger {
new ():any;
//():any; // "Callable" syntax. same error.
//new ():LoggerInstance; //Same error.
}
interface LoggerInstance {
}
function Logger(): void {
}
var defaultLogger: LoggerInstance = new Logger();//error TS7009
//var defaultLogger: LoggerInstance = <any>new Logger();//same error
//var defaultLogger: LoggerInstance = <LoggerInstance >new Logger();//same error
Run Code Online (Sandbox Code Playgroud)
我没有看到如何在不将Logger函数转换为类的情况下执行此操作.
在没有隐式任何禁用的情况下,typescript编译器提出了任何改进建议,所以我想保留该设置.
更新:如果我从Logger接口中删除"new"然后转换新Logger(...)的结果,让它在完整文件中编译,但在我较小的测试示例中,我继续得到相同的错误.
更新2好的,我认为当红色下划线语法错误的插件崩溃时,错误警告就会消失.我认为当禁用"隐式任意"时,必须禁止这种对象创建方式.