打字稿如何将未定义属性转换为可选属性

时间:2019-05-15 10:11:33

标签: typescript

我有类似

的代码
interface Test {
  prop: number | undefined
}

,我想将未定义的属性转换为可选属性,例如

type ToOptional = ???
ToOptional<Test>
/** transform result
{
  prop?: number
}
*/

我应该如何定义ToOptional?

编辑:

interface Test {
  prop1: number | undefined;
  prop2: number;
}

type ToOptional = ???
ToOptional<Test>
/** transform result
{
  prop1?: number
  prop2: number
}
*/

2 个答案:

答案 0 :(得分:1)

您可以使用映射类型和条件类型来提取其中具有ObjectMapper mapper = new ObjectMapper(); MyObject object = mapper.readValue(hit.getSourceAsString(), MyObject.class); 的属性,然后从类型中选择undefined属性。同样,我们需要选择未定义的属性,以获取所有原始属性

undefined

答案 1 :(得分:0)

您可以使用映射类型Partial来做到这一点。

interface Test {
  prop: number | undefined;
}

type ToOptional<T> = Partial<T>;

const optional: ToOptional<Test> = {};