Could someone kindly explain to me the types Js.Array.filter expects. What am i getting wrong?
I am not sure what you want to achieve with
Js.Array.every here. It’s supposed to be applied on an array and not a single array element (in this case a
string). Hence the error
string vs array<string>.
Js.Array.filter you are already iterating over the elements of the
languages array, so it would be sufficient to just write
let dynamicLanguages = Js.Array.filter( lang => !Js.Array.includes(lang, compiledLanguages), languages, )
Js.Array.filter is similar to
Js.Array.map in that regard, only it requires the predicate function to return a
bool instead of an arbitrary type and it returns an array of the same type as the input.
Compare their signatures:
map: ('a => 'b, array<'a>) => array<'b>
filter: ('a => bool, array<'a>) => array<'a>