我正在使用Typescript编写的Parse Server构建一个后端。Parse在许多地方使用“魔术字符串”,我试图避免它们。
例如,如果我有一个名为Item
的解析类,它有一个属性color
,我将通过以下方式获得该属性:myItem.get('color')
。
我希望使这个类型安全,并为color
使用枚举而不是字符串本身。我已经为Item
的所有属性定义了一个接口,如下所示:
import { Attributes, Object } from 'parse'
export interface ItemAttributes extends Attributes {
color: string
size: number
enabled: boolean
}
export class Item extends Object<ItemAttributes> {
constructor (data?: Partial<ItemAttributes>) {
super('Item', data as ItemAttributes)
}
}
字符串
有没有一种方法可以从Typescript中的ItemAttributes
接口生成一个枚举,而不必像这样为每个解析类创建一个新的枚举?
export enum ItemKeys {
color = 'color'
size = 'size'
enabled = 'enabled'
}
型
因此,我希望能够像这样在Parse getter中使用我的新枚举:
myItem.get(ItemKeys.color)
型
1条答案
按热度按时间m4pnthwp1#
你可以用TS-morph生成枚举
文档是缺乏的,它也不容易使用,在大多数情况下,所有这些都是字符串操作,所以它不适合胆小的人
您可以使用chatGPT生成所需的确切代码
你可以这样做:
字符串