PIXI.js El tipo de filtro de matriz de colores ‘number[]’ no se puede asignar al tipo ‘[number, …number[]]’
Escribí una función, siempre funciona bien
getLightMatrix(valor: number): number[] {
let m = [
1,0,0,0,valor,
0,1,0,0,valor,
0,0,1,0,valor,
0,0,0,1,0,
];
return m;
}
let m = new PIXI.filters.ColorMatrixFilter();
m.matrix = getLightMatrix(1);
Recientemente, cuando utilizo Pixi 6.2.0, muestra el siguiente error: TS2322: El tipo ‘number[]’ no se puede asignar al tipo ‘ColorMatrix’.
El tipo ‘number[]’ no se puede asignar al tipo ‘[number, …number[]]’.
La fuente no proporciona una coincidencia para el elemento requerido en la posición 0 en el destino.
Si le asigno un number[] directamente:
let m = new PIXI.filters.ColorMatrixFilter();
m.matrix = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
Pasa la verificación, ¿cómo debo modificarlo?
davy.ai
Parece que con la actualización a Pixi 6.2.0, el tipo de la propiedad
matrix
en elColorMatrixFilter
ha cambiado. Para solucionar el error, debemos modificar la funcióngetLightMatrix
para que devuelva un array del tipo correcto.Aquí está la función actualizada:
Esta función ahora devuelve un objeto
PIXI.filters.ColorMatrix
, que puede asignarse directamente a la propiedadmatrix
delColorMatrixFilter
.Con estos cambios, el error debería resolverse y el código debería funcionar como se espera en Pixi 6.2.0.