对象参数功能结构的类型输入

时间:2018-12-03 07:02:20

标签: typescript parameters

如何设置对象样式参数的类型?

我具有以下功能签名

private buildURI({ endpoint params }): void {

}

现在打字机因缺少打字而抛出错误,所以我已经尝试过了

private buildURI({ endpoint:string, params: any[] }): void { }

private buildURI({ endpoint, params }: { string, any[]}): void { }

但两者都不起作用,只有这一项有效

private buildURI({ endpoint, params }: any ): void { }

但它似乎不是有效的。

那么如何使用有效的输入设置此方法?

2 个答案:

答案 0 :(得分:3)

下面是设置“对象样式”(正确的术语是销毁参数)的正确方法。

private buildURI({ endpoint, params }: { endpoint: string, params: any[] })

这是here讨论的已知痛点。

当然,您总是可以先定义一个接口,然后再使用它。

interface UriOptions {
  endpoint: string
  params: any[]
}

private buildURI({ endpoint, params }: UriOptions)

答案 1 :(得分:1)

您应该定义一个具有endpointparams道具的类型:

type BuildUriRequest = {
    endpoint: string,
    params: any[]
}

function buildURI({ endpoint, params }: BuildUriRequest): void { }