Вопрос изменен Примером метода до конца: -
У меня есть интерфейс, как показано ниже для ввода объекта.
export interface IList{
name: string;
age: number;
option: number;
quantity: number;
priority: number;
}
Из-за некоторых требований я должен назначить "string" для свойства "priority" в конце всех операций перед отправкой его в бэкэнд.
Поскольку я должен назначить строку, я попытался использовать оператор объединения: -
приоритет: номер | строка; Но все другие фрагменты кода, где бы я ни использовал другие операции, принимая это во внимание как число, также приводят к ошибке ниже:
Argument of type 'string | number' is not assignable to parameter of type 'number'
Type 'string' is not assignable to type 'number'.
Как мне обойти это и использовать приоритет как строку и число для ввода моего объекта.
Вот одно условие, в котором я использую интерфейс "IList" в качестве типа и присваиваю число, если multiGroupHeader имеет значение true, иначе мне нужно назначить строку: -
public updatePriorities(Lists: IList[]) {
if (!this.multiGroupHeader) {
const priorities = Lists.map((list: IList) => list.priority);
const uniquePriorities = [...new Set(priorities)];
if (uniquePriorities.length === 1 && uniquePriorities[0] === 1) {
return;
}
uniquePriorities.sort((priority1: number, priority2: number) => priority1 - priority2);
const updatedPriorities = uniquePriorities.map((priority: number, index: number) => {
return index + 1;
});
uniquePriorities.forEach((id: number, index: number) => {
Lists.forEach((list: IList) => {
if (list.priority === id) {
list.priority = updatedPriorities[index];
}
});
});
} else {
Lists.forEach((list: IList) => (list.priority = "CURRENT"));
}
}