Eu tenho um number[] | string[]
e quero filtrá-lo. O problema é que a função de filtro muda o tipo para (number | string)[]
instead.
// list of numbers OR list of strings
let myList = Math.random() < 0.5 ? [1, 2, 3] : ["a", "b", "c"];
// filter the list
const filtered = myList.filter((x) => { return true; });
// oh no, the result is Array<number | string> instead of (number[] | string[])
myList = filtered;
Erro na última linha:
Type '(string | number)[]' is not assignable to type 'number[] | string[]'.
Type '(string | number)[]' is not assignable to type 'number[]'.
Type 'string | number' is not assignable to type 'number'.
Type 'string' is not assignable to type 'number'.(2322)
Como posso expressar o fato de que a matriz não pode ser mista , mas pode conter qualquer tipo de elemento?