ts-reset
ts-reset copied to clipboard
Array#includes overload doesn't work on arrays over generic types (`T[]`)
While this works (no type error):
const arr: ('a' | 'b')[] = [];
arr.includes('some string');
This doesn't seem to extend to arrays that are defined in terms of a type parameter, e.g.:
function someFn<T extends string>() {
const arr: T[] = [];
arr.includes('some string');
// ^^^^^^^^^^^^^ Argument of type '"some string"' is not assignable to parameter of type 'T | (WidenLiteral<T> & {})'
}
Playground link: https://www.typescriptlang.org/play?#code/JYWwDg9gTgLgBAcgAIwjAhgGwLQwJ5gCmAzgMZTBgwD0Mx2UJhMCA3AFDsBmArgHakYwCHzgwAFsGIB1aAGtiAeS4BhCDyjFCACgCUcAN7s4JuKRHF4EqbKgKAXHG0J0COAB9EAIwS6A2gC6cAC8cIEcpmKSMvLEAHTAApg8ACYkzsQQIIRwlhR8AOa+HAC+nLwCQiJwYFAQXpiEIACCADwAKnCEAB4whHwpxIiuHt4IAHx6hsam5nyWUVIAIhAkfDCO7YEhYQERptbEK2swCUmp6QiZ2bkw+UW6peX8gsKitfWNIABCHV29-UGt3uk30RkicwWh2OxHWm22oXCMxM0NWsNOiVIyTSxAyWRyeUSDyeQA
See #49