强制定义可选的接口属性

问题描述 投票:0回答:1

说我有以下界面:

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
}

但是,这个不可分配回具有基本接口类型的变量。

我是不是太复杂了?我应该只有两个不同类型的变量吗?

javascript typescript interface optional
1个回答
1
投票

接口扩展适用于我on the playground。如果它仍然不适合您,请添加足以重现问题的代码。

© www.soinside.com 2019 - 2024. All rights reserved.