变量自动更改打字稿

时间:2018-10-08 12:13:52

标签: angular typescript

我有采用接口参数的方法。但我希望我的原始参数“ selectItemList”保持不变。因此,我创建了新的常量“ itemlist”。并且我将项目添加到“ itemList”。但是,当我将项目添加到itemList时,然后自动添加到selectItemList。我只想更改“ itemList”而不是“ selectItemList”。我的错误在哪里?

SelectItem.ts(接口)

export interface SelectItem {
    label?: string;
    value: any;
    styleClass?: string;
    icon?: string;
    title?: string;
    disabled?: boolean;
}

我的方法

  addUnselectedItem(selectItemList: SelectItem[]): SelectItem[] {
    const itemList = selectItemList;
    itemList.unshift({ value: "", label: "Please Select" });
    return itemList;
  }

1 个答案:

答案 0 :(得分:2)

您正在引用“ itemList”中的“ selectItemList”。您需要创建新的数组来解决上述问题。

有两种方法可以做到这一点。

  1. 复制新数组中的所有元素,然后修改新数组

  2. 使用Array的“切片”方法(返回数组一部分的浅表副本)。

    const itemList = selectItemList.slice(0,selectItemList.length);