相关疑难解决方法(0)

Typescript - 扩展错误类

我试图抛出一个自定义错误,我的"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原型)?

javascript typescript

57
推荐指数
6
解决办法
3万
查看次数

如何将新的SomeFunction()语法转换为TypeScript?

当试图将一个简单的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好的,我认为当红色下划线语法错误的插件崩溃时,错误警告就会消失.我认为当禁用"隐式任意"时,必须禁止这种对象创建方式.

typescript

4
推荐指数
1
解决办法
1902
查看次数

标签 统计

typescript ×2

javascript ×1