我想將一個對象類型映射到一個子類型,該子類型只包含值屬于特定類型的鍵。例如,像ExtractNumeric<T>, where ExtractNumeric<{ str: string, num: number }>應該等價于類型:{ num: number }我試過這個,但它不起作用:type ExtractNumeric<T> = { [k in keyof T]: T[k] extends number ? T[k] : never }此代碼段引發(fā)類型錯誤: let obj: ExtractNumeric<{ str: string, num: number }> = { num: 1 }因為雖然str鍵期望值為never,但編譯器會抱怨它的缺失。
在 TypeScript 中按值類型排除對象鍵
寶慕林4294392
2021-06-15 16:38:40