Búsqueda de sitios web

javascript - El argumento de tipo '(priority1: number, priority2: number) => number' no es asignable al parámetro de tipo '(a: unknown, b: unknown) => number'


Estoy recibiendo el siguiente error de tipo (TypeScript - 3.7.5).

error TS2345: El argumento de tipo '(priority1: number, priority2: number) => number' no se puede asignar al parámetro de tipo '(a: unknown, b: unknown) => number'. Los tipos de los parámetros 'priority1' y 'a' son incompatibles. El tipo 'unknown' no se puede asignar al tipo 'number'.

Código :

public updatePriorities() {
  const priorities = this.fetchedData.map((id: IList) => id.priority);
  const uniquePriorities = [...new Set(priorities)];
  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) => {
    this.fetchedData.forEach((id1: IList) => {
      if (id1.priority === id) {
        id1.priority = updatedPriorities[index];
      }
    });
  });
}

Respuesta #1

Tengo algo, parece que es una limitación del diseño de TS, así que me temo que no hay una buena manera de solucionarlo. Solo podemos esperar a que lo arreglen en las próximas versiones del lenguaje.