typescript - 如何根据变量从对象值中获取类型
问题描述
我有以下类型:
type Core = {
a: string
b: number
}
我希望能够获得其中一个实体的类型以在其他地方使用。
伪代码:
const c: <the type of Core.a> = 'hello'
基本上我想要一个类型,它接受一个变量(a
在这种情况下),然后从上面的对象返回值。
解决方案
看起来你想要查找类型,也就是索引访问类型。如果T
是一个类型,并且K
是它的一个键的类型(或此类类型的并集),则T[K]
是该键的属性的类型(或此类属性的并集)。在您的情况下,T
是Core
并且K
是字符串文字类型 "a"
:
const c: Core["a"] = 'hello'; // okay
请注意,查找类型仅支持括号表示法,T["a"]
; T.a
即使键是字符串文字,也不能使用点表示法。(点表示法会导致与命名空间/模块的潜在名称冲突;如果您有一个命名空间T
,它导出一个名为的类型,a
那么T.a
就是该类型的名称。)
好的,希望有帮助;祝你好运!
推荐阅读
- c# - .NET SDK 和 .NET 运行时实际上包含什么?
- django - 关于将 Django 应用程序部署到本地产品的一些建议
- java - 如何修复 Java 11 + JavaFX Hibernate 模块的 module-info.java
- sql - SQL 查询以查看总和是否相加
- node.js - 来自 mongodb 的二进制数据已损坏
- python - 合并不同大小的数据帧并同时覆盖 NaN 值
- jquery - 如何在jquery listview中从右到左
- angular - 从 Web Api 获取 XML 到 Angular
- c++ - 可变大小的二维数组 C++ 2017
- python - 如何经常转置一个系列/列表/数组