簡體   English   中英

帶傳播算子的打字稿題詞

[英]Typescript insection with spread operator

我正在嘗試做一些瑣碎的事情:將一個帶類型的對象傳遞給一個函數,用已知的鍵對其進行擴充,然后返回一個與兩者相交的類型。

以下代碼似乎使我受益匪淺

interface Success {
  success: boolean
}

interface Named {
  name: string
}

type Resolver<T> = Success & T

function test<T>(input: T): Resolver<T> {
  return {
    success: true,
    ...input
  }
}

const person: Named = { name: 'Bob' };
const res = test<Named>(person);
// `res.success` and `res.name` are inferred

但是,我在...input傳播運算符上收到以下錯誤:

傳播操作員錯誤

如何強迫T成為對象? 我嘗試創建一個索引接口並進行擴展,但是仍然存在相同的錯誤。

這是一個TypeScript錯誤。 它將由PR https://github.com/Microsoft/TypeScript/pull/13288修復

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM