interface A
{
x:string; y:string
};
var a: A[] = [];
a.push(
{x: "a",
y: "b"});
a.slice(-1).x = "foo";
我认为最后一行出错了,因为a.slice(-1)的结果不属于已知类型,因此它表示"没有已知属性x"。
答案 0 :(得分:1)
问题是a.slice(-1)返回一个数组(切片),即使它只有一个元素。数组没有“x”属性。但每个元素都有。
以下是预期的结果:
a.slice(-1)[0].x = "foo";