我在任何地方都找不到解决方案。
可以说我有
type ObjectRecord = { [key: number]: SomeType }
Run Code Online (Sandbox Code Playgroud)
现在我可以有另一种类型
type ValueInObjectRecord = ObjectRecord[number] // SomeType
Run Code Online (Sandbox Code Playgroud)
如果我想对地图做同样的事情怎么办?
type MapRecord = Map<number, SomeType>
Run Code Online (Sandbox Code Playgroud)
type ValueInMapRecord = MapRecord[number] // does not work!
Run Code Online (Sandbox Code Playgroud)
A_b*_*lop 12
您将希望在条件类型/中使用类型推断infer:
type SomeType = { foo: string }
type MapRecord = Map<number, SomeType>
type ValueInMapRecord = MapRecord extends Map<any, infer I> ? I : never
// type ValueInMapRecord = { foo: string; }
Run Code Online (Sandbox Code Playgroud)
这是检索类型成分的常见方法,也适用于ObjectRecord:
type ValueInObjectRecord = ObjectRecord extends {[key:number]: infer I} ? I : never
// type ValueInObjectRecord = { foo: string; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7070 次 |
| 最近记录: |