У меня есть интерфейс, показанный ниже, для ввода объекта.
export interface IList{
name: string;
age: number;
option: number;
quantity: number;
priority: number;
}
Из-за некоторых требований я должен назначить «строку» свойству «приоритет» в конце всех операций, прежде чем отправлять ее на бэкэнд.
Поскольку мне нужно присвоить строку, я попытался использовать оператор объединения: -
priority : number | string;
Но все остальные фрагменты кода, где бы я ни использовал другие операции, принимая это во внимание как число, также выдают мне следующую ошибку:
Argument of type 'string | number' is not assignable to parameter of type 'number'
Type 'string' is not assignable to type 'number'.
Как мне обойти это и использовать приоритет как строку и число для ввода моего объекта.
Вот одно условие, при котором я использую интерфейс «IList» в качестве типа и присваиваю номер, если multiGroupHeader истинно, иначе мне нужно назначить строку: -
public updatePriorities(Lists) {
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: List) => {
if (list.priority === id) {
list.priority = updatedPriorities[index];
}
});
});
} else {
Lists.forEach((list:List) => list.priority = "CURRENT");
}
}
number | string
, а не толькоnumber
- person Aleksey L.   schedule 06.03.2020