typescript - 打字稿:你能递归地输入一个对象吗
问题描述
我想让打字稿递归地推断对象键的类型及其子对象的键。例如给出下面的声明:
const o:A<X> = {
a:'1',
b: {
c: '2'
}
}
我想A
这样X
定义"a"|"b"|"c"
。使用keyof
我可以让 Typescript 推断第一层(即X = "a"|"b"
)但不能推断后续层。是否可以让 Typescript 推断孙节点的键类型?
解决方案
尝试这个:
type A<X extends string|number> = {
[id in X]?: string | A<X>
}
推荐阅读
- python - 如何垂直拆分数组并在每个拆分后的数组中添加一列
- r - 将时变协变量添加到 R 中的模型
- c++ - Eigen 的 SparseQR 如何解决欠定系统
- html - 如何在引导程序 3 中将下拉列表放入另一个下拉列表中?
- protractor - 量角器 - 如何使用 console.log 打印参数本身
- java - 映射视图时的@Id、@JoinColumn 和其他注解
- java - 向自定义对象数组添加方法
- node.js - 如何生成刷新令牌?
- python - 如何在熊猫数据框中将 yyyymmdd 格式更改为 mm-dd-yyyy?
- powershell - 使用 PowerShell 远程运行进程返回 The request is not supported