相关疑难解决方法(0)

使用ES6语法和Babel扩展Javascript中的错误

我试图用ES6和Babel扩展Error.它没有成功.

class MyError extends Error {
  constructor(m) {
    super(m);
  }
}

var error = new Error("ll");
var myerror = new MyError("ll");
console.log(error.message) //shows up correctly
console.log(myerror.message) //shows empty string
Run Code Online (Sandbox Code Playgroud)

Error对象永远不会获得正确的消息集.

试试Babel REPL.

现在我已经在SO上看到了一些解决方案(例如这里),但它们看起来都非常非ES6-y.如何以漂亮的ES6方式做到这一点?(那是在Babel工作)

javascript transpiler ecmascript-6 babeljs

128
推荐指数
6
解决办法
5万
查看次数

'new'表达式,其目标在TypeScript中缺少构造签名

我们有以下TestComponent.tsTypeScript类:

01: import TestVectorLayer from './TestVectorLayer'
02: 
03: export class TestComponent implements OnInit {
04:   private foo: any;
05: 
06:   constructor() { }
07: 
08:   const layer = new TestVectorLayer("foo");
09: }
Run Code Online (Sandbox Code Playgroud)

并具有以下TestVectorLayer.ts功能:

请记住,OpenLayer 3正在使用Google Closure库,这就是为什么TestVectorLayer它不是TypeScript类.

01: declare let ol: any;
02:
03: const TestVectorLayer = function (layerName: string) {
04:   ...
05:   console.log(layerName);
06:
07:   ol.layer.Image.call(this, opts);
08: }
09:
10: ol.inherits(TestVectorLayer as any, ol.layer.Image as any);
11:
12: export default TestVectorLayer; 
Run Code Online (Sandbox Code Playgroud)

我们收到以下错误: …

javascript typescript

19
推荐指数
2
解决办法
9200
查看次数

如何声明一个在Typescript中引发错误的函数

在Java中,我将这样声明一个函数:

public boolean Test(boolean test) throws Exception {
  if (test == true)
    return false;
  throw new Exception();
}
Run Code Online (Sandbox Code Playgroud)

而且我可以使用此功能而无需处理异常。

如果可能,如何在Typescript中执行相同的操作?编译器会告诉我,如果没有try / catch,我将无法使用该函数。

typescript

16
推荐指数
3
解决办法
7444
查看次数

JavaScript / TypeScript:保留错误原因的标准方法

我有 Java 开发背景,而且对 JavaScript/TypeScript 还很陌生。

是否有标准方法来管理和保留 JavaScript/TypeScript 中错误的原因?

我的目的是当我将一个 Error 包装到另一个 Error 中时获得完整的堆栈跟踪;有点像 Java 异常堆栈跟踪:

Message of exception 1
...
Caused by: Message of exception 2
...
Caused by: Message of the root exception
Run Code Online (Sandbox Code Playgroud)

我尝试了这段代码,但err1没有保留以下参考err2

// CODE
try {
    try {
        throw new Error("Error no2");
    } catch (err2) {
        console.log("========================================");
        console.log(err2);
        throw new Error("Error no1");
    }
} catch (err1) {
    console.log("========================================");
    console.log(err1);
}
Run Code Online (Sandbox Code Playgroud)
// CONSOLE OUTPUT
$ node test.ts 
========================================
Error: Error no2
    at …
Run Code Online (Sandbox Code Playgroud)

javascript error-handling stack-trace typescript

13
推荐指数
2
解决办法
1万
查看次数