javascript - 在打字稿中,我们可以将两个枚举转换为一个对象键值吗
问题描述
我有两个枚举 Key & Label 和一个接口 IOption 并使用枚举我想创建一个数组的 Iptions 对象
const enum Key {
Flag = 'flag',
Checkbox = 'checkbox',
Star = 'star'
}
const enum Label {
Flag = 'Flag',
Checkbox = 'Checbox',
Star = 'Start'
}
interface IOption {
key: Key;
label: Label;
}
const dropDowOptions: Ioptions[]
实现这样的 IOption 数组的最佳方法是什么
const dropDownOptions = [
{myKey: Key.Flag, myLabel: Label.Flag },
{myKey: Key.Star, myLabel: Label.Flag},
{myKey: Key.CheckBox, myLael: Label.Checkbox}
]
解决方案
我做的:
enum Key {
Flag = 'flag',
Checkbox = 'checkbox',
Star = 'star'
}
enum Label {
Flag = 'Flag',
Checkbox = 'Checbox',
Star = 'Start'
}
interface IOption {
key: Key;
label: Label;
}
var dropDownOptions: IOption[] = new Array<IOption>();
Object.keys(Key).forEach(key => {
dropDownOptions.push({
key: Key[key],
label: Label[key]
});
});
console.log(dropDownOptions);
输出:
[
{ key: 'flag', label: 'Flag' },
{ key: 'checkbox', label: 'Checbox' },
{ key: 'star', label: 'Start' }
]
推荐阅读
- android - 将外部数据库复制到内部android数据库后无法从数据库中读取数据
- typescript - 无法读取子组件中的 ngFor 数据,未定义获取属性
- obfuscation - Node.js Express 混淆
- ios - 快速在标签栏上使用不同的图标
- pandas - Keras 中 MAE 和 MSE 高的原因可能是什么?
- java - 在 Java 中使用 (ORDER BY & WHERE) 从 MySQL 中获取数据
- properties - Vis.js:你能在悬停时显示属性吗?
- python - 在 Python 中使用字典
- java - 更改内容和 Maven 依赖项
- c# - 使用 .NET Core 应用程序部署 Azure Web App