const star = { phone: '****', price: 0 } 使用TS转换成 enum MyStrings { Phone = 'phone', Price = 'price' }
时间: 2024-04-22 22:24:50 浏览: 112
在 TypeScript 中,可以使用映射类型(Mapped Types)和字符串字面量类型(string literal types)将 `star` 对象转换为枚举 `MyStrings`。下面是示例代码:
```typescript
const star = {
phone: '****',
price: 0
};
type MyStrings = {
[K in keyof typeof star]: K;
};
const myEnum: MyStrings = {
phone: 'phone',
price: 'price'
};
```
在上面的示例中,我们首先定义了 `star` 对象,其中包含了 `phone` 和 `price` 两个属性。
然后,我们使用映射类型 `[K in keyof typeof star]: K` 创建了一个新类型 `MyStrings`,它的键和值都是 `star` 对象的属性名。
最后,我们定义了一个变量 `myEnum`,它的类型是 `MyStrings`,并且将属性名作为枚举的值进行初始化。
这样,我们就成功将 `star` 对象转换为了枚举 `MyStrings`,并且保持了属性名与枚举值的一致性。你可以根据需要修改和扩展这个示例来适应你的实际情况。
阅读全文