пол.ц
export enum Gender {
Male = 1,
Female = 2
}
export let genderDescriptions: { [P in keyof typeof Gender]: string } = {
Female: "FemaleDescriptionExample",
Male: "MaleDescriptionExample"
}
selectitem.ts
export interface SelectItem {
label?: string;
value: any;
}
my-component.ts
var myList: SelectItem[] = (Object.keys(Gender) as Array<keyof typeof Gender>)
.filter(p => typeof Gender[p] === "number")
.map(p => ({
label: genderDescriptions[p],
value: Gender[p]
}));
console.log(myList);
Привет.У меня есть пол enum, и я сопоставляю с массивом SelectItem.Консоль даст мне результат, как показано ниже.Работает отлично.Но я хочу глобальный enumConverter.Итак, я написал, как показано ниже, но это не работает.Как я могу сделать это как универсальный?
1: {label: "MaleDescriptionExample", value: 1}
2: {label: "FemaleDescriptionExample", value: 2}
Я дал универсальный параметр T и описание, но везде дал ошибку:
'T' относится только к типу, но в настоящее времяздесь используется в качестве значения
enumToSelectItemArray<T,Description>() {
return (Object.keys(T) as Array<keyof typeof T>)
.filter(p => typeof T[p] === "number" && T[p] !== 3)
.map(p => ({
label: descriptin[p],
value: T[p]
}))
}