在同一行中分配变量并更改属性

时间:2019-01-14 10:05:59

标签: javascript typescript

我对打字稿有疑问: 我的界面如下:

interface MyInterface {
  option1?: string;
  option2?: string;
  // more options
}

在另一个文件中,我将实例化它的一个实例:

const defaultVar: MyInterface {
  option1: 'defaultValue1',
  option2: 'defaultValue2'
}

是否可以将默认值分配给另一个变量,并为某些选项设置详细信息?我什至不确定这种表示法。可能是:

const specificVar: MyInterface = defaultVar {
  option2: 'specificValue'
}

我想定义一堆常量,这些常量都来自一个通用默认值,并且仅采用必要的值。

谢谢, 本杰明

1 个答案:

答案 0 :(得分:2)

您可以使用对象spread operator

interface MyInterface {
    option1?: string;
    option2?: string;
    // more options
}

const defaultVar: MyInterface = {
    option1: 'defaultValue1',
    option2: 'defaultValue2'
}

const specificVar: MyInterface = {
    ...defaultVar,
    option2: 'specificValue'
}

上面的代码创建一个新对象,并将defaultVar的所有属性分配给specificVar。我们还可以添加其他属性来覆盖新对象中的属性。