typescript - 将数组值提取为 Typescript 类型
问题描述
基本上有没有办法将数组值提取为字符串类型?这是伪代码:
class A
{
public keys = ['name', 'age']
}
type ArrayKeys = P in A['keys'] // 'name' or 'age'
如何将 ArrayKeys 缩小为 A['keys'] 的可能值。
解决方案
您需要keys
通过添加强制转换来确保 TypeScript 不会改变as const
(否则,TypeScript 只会假定它是一个字符串数组),请注意这将使 TypeScript 强制执行此操作。您将无法更改阵列。
之后,它相当简单:
class A
{
public keys = ['name', 'age'] as const
}
type ArrayKeys = A['keys'][number];
操场上。
这[number]
部分是数组值的“访问”。(Array<T>)[number]
永远都是T
。
推荐阅读
- python - 理论上,对于 Apache Spark,Scala 比 Python 更快。在实践中并非如此。这是怎么回事?
- reactjs - React.js 和 .net core 网络错误:无法获取
- python - Python win32com 显示 VBA 用户窗体
- docker - 用于 docker swarm 的 Glusterfs
- c++ - 在 C++ 中多次更改字符串列表
- javascript - 为什么发生模糊事件时无法运行console.log?
- c - C : 基于先前输入的多行输入
- c# - Hyperwallet 服务在 postmant 中工作,但不能在带有 http 请求的 c# 代码中工作。?
- jsf - 更改日历值时更新 f:param 值
- c - 使用 C 提取 Wiki 链接