说我有以下界面:
interface Example {
optionalString?: string
// ... other props
}
我有一个函数以Example
为参数。我知道返回类型语法是假的。
function ensureDefined (example : Example) : Example & {optionalString: string}
这个函数的想法是确保定义optionalString
的属性example
并返回该对象。在这种情况下,每次我想访问optionalString
财产,我不需要做if(example.optionalString){}
。
我试过创建一个接口的扩展,如下所示:
interface ExampleExtension extends Example {
optionalString: string // notice no '?'
// ... other props
}
但是,这个不可分配回具有基本接口类型的变量。
我是不是太复杂了?我应该只有两个不同类型的变量吗?
接口扩展适用于我on the playground。如果它仍然不适合您,请添加足以重现问题的代码。