克隆类实例时,打字稿会为扩展运算符产生错误,但不会为对象分配产生错误

时间:2018-10-05 15:02:37

标签: javascript typescript

当我使用Object.assgin()类型脚本时,我正在使用扩展操作符和object.assgin克隆类实例,将我的代码编译到es5中,这会导致运行时错误,但是在使用扩展操作符类型脚本时会生成错误。
这是一个说明问题的代码示例。

class foo {
  fooMethod() {
    return "foo method"
  }

}

let fooInstance = new foo();
let bar = { ...fooInstance };
console.log(bar.fooMethod());
  

类型'{fooVariable:any;不存在属性'fooMethod' }'。

但是,当使用Object.assgin()打字稿替换扩展运算符时,会将代码编译为es5,没有任何错误。

class foo {
  fooMethod() {
    return "foo method"
  }

}

let fooInstance = new foo();
let bar = Object.assign({},fooInstance);
console.log(bar.fooMethod());

当这两个代码都导致相同的运行时错误时,为什么打字稿的行为有所不同?

0 个答案:

没有答案