javascript - 使用 JavaScript Flow,如何将允许的值限制为类型的键?
问题描述
应该代替什么,???
以便以下内容起作用:
type Product = {
id: number,
name: string;
}
const foo: ??? = 'id' // works
const bar: ??? = 'name' // works
const baz: ??? = 'someField' // FAIL!
解决方案
您可以使用从类型中提取所有键并生成它们的联合的$Keys
实用程序类型。
type Product = {
id: number,
name: string;
}
const foo: $Keys<Product> = 'id' // works
const bar: $Keys<Product> = 'name' // works
const baz: $Keys<Product> = 'someField' // FAIL!
实际上$Keys<Product>
与 相同,"id" | "name"
但它是根据 中存在的属性动态计算的Product
。如果你想重用它,你也可以提取类型:
type ValidKey = $Keys<Product>
const foo: ValidKey = "id"
推荐阅读
- web-services - docker swarm - Leader(Manager) 节点服务端点和负载均衡
- excel - 使用 vlookup 到另一个带有多个 if 语句的工作表
- css - 仅使用内联 CSS 隐藏/显示 CSS
- spring - 如何在 Spring 集成中使用 ActiveMQ 队列
- python - Pyinstaller 编译的可执行文件失败,退出代码为 139
- c# - 如何在 Redis 缓存中添加/更新/删除值
- hibernate - 本机查询似乎没有看到 hql 查询 db 变化
- node.js - 在使用 takeUntil() 和 Observable.fromEvent() 方法方面需要帮助
- r - 在 R 中重新创建各种非参数 ANCOVA 分析
- python - 通过查询将具有相同 ForeignKey 字段的多行组合起来