在打字稿中,我可以不指定物件字面量以便自動推斷型別,或者我可以指定一個型別(例如Record)以便在字面量上強制執行型別。-- (1)
我想強制執行,Record<unknown, A>以便可以從文字中推斷出屬性(作為聯合型別,如"prop1" | "prop2" | "prop3"),并且值針對 進行型別檢查A。
即我想要求打字稿在(1)中的每種情況下完成它所做的一半。
這可能嗎?Record<unknown, A>抱怨而不是推斷未知的型別
TS2344: Type 'unknown' does not satisfy the constraint 'string | number | symbol'. Type 'unknown' is not assignable to type 'symbol'.
在此打字稿游樂場鏈接中查看最小復制
uj5u.com熱心網友回復:
這將需要部分型別推斷,而 Typescript 還沒有。
這里的一種解決方案是讓 TS 推斷型別,然后驗證記錄值的型別,即。就像是
const obj = {
prop1: 'foo',
prop2: 42,
prop3: true
}
function fun<Keys extends string>(input: Record<Keys, string | number>) {}
fun(obj) // error: boolean not an accepted value
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/343873.html
標籤:打字稿
下一篇:具有特定編號的函式多載
