![](/img/trans.png)
[英]What type declaration to use for a generic T that may or may not be hierarchical?
[英]What is the use of destructuring in a generic declaration?
解構可能是錯誤的術語......
在我工作的代碼庫中發現了這個。這很令人費解。
await apolloClient
.query<{ Workorder: Workorder }>({
query: WORKORDER_QUERY,
variables: { uuid: id },
})
我不明白{ Workorder: Workorder }
的意義。 這里發生了什么? 那與.query<Workorder>
的價值是多少?
Workorder
是一個具有大約 30 個屬性的接口。
它不是破壞性的。 它只是意味着傳遞的類型參數是一個帶有 Workorder 屬性的 object,並且該屬性的值是一個 Workorder。
例如,給定:
type Workorder = { order: boolean };
declare function fn<T>(): T;
const result = fn<Workorder>();
其中類型參數與返回的類型相同, result
的類型為:
{
order: boolean
}
而如果你這樣做
const result = fn<{ Workorder: Workorder }>();
結果現在是這樣的類型:
{
Workorder: {
order: boolean
}
}
並不是說.query
做同樣的事情,但這會讓您了解不同之處。 執行<{ Workorder: Workorder }>
只是將 Workorder 包裝在 object 中並將其作為類型參數傳遞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.