打字稿类型错误没有意义

时间:2015-07-07 19:13:10

标签: typescript

interface A
  {
    x:string; y:string
  };

var a: A[] = [];
a.push(
  {x: "a", 
   y: "b"});

a.slice(-1).x = "foo";

我认为最后一行出错了,因为a.slice(-1)的结果不属于已知类型,因此它表示"没有已知属性x"。

  1. 我的诊断是否正确?
  2. 这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

问题是a.slice(-1)返回一个数组(切片),即使它只有一个元素。数组没有“x”属性。但每个元素都有。

以下是预期的结果:

a.slice(-1)[0].x = "foo";