interface Input {
necessaryA: string;
necessaryB: string;
optionA?: string;
optionB?: string;
}
type defaultInputProperty = {
optionA: string;
optionB: string;
}
function handle(input: Input) {
const defaultvalues: defaultInputProperty = {
optionA: 'defaultA',optionB: 'defaultB',}
const actualInput: Required<Input> = { ...defaultvalues,...input };
// do something with actualInput
}
如何声明defaultInputProperty
,以便在Input
的声明更改时正确?
更具体地说,defaultInputProperty
需要添加属性optionC
,而Input
具有新的选项属性optionC
并且defaultInputProperty
不需要添加属性{{1} },当necessaryC
具有新的必要属性Input
时。
换句话说,necessaryC
在defaultInputProperty
中具有所有选项属性,而在Input
中则没有必要的属性。