展开对象中的可选参数

时间:2017-07-24 20:14:10

标签: typescript

我有以下定义:

interface A {
    new ({a, b?, c});
}

由于可选的b参数:

,编译失败
error TS1005: ',' expected.
error TS1180: Property destructuring pattern expected.

删除?让它编译。<​​/ p>

如何在不将展开对象提取到其他类型的情况下表达可选参数?

1 个答案:

答案 0 :(得分:1)

您所拥有的内容并未描述abc的类型。 您应该注意到它们都被键入为any

要指定其类型,您需要输入类型信息,例如

interface A {
    new ({a, b, c}: { a: string, b?: string, c: string});
}

您可以指定b是可选的。