@josevalim you can hover the keys arg at the call site and see the inferred types. At that point in time there is nothing the function types could do to change the already inferred types
@josevalim It's not fixeable. The array will be inferred to be `string[]`, a wide type and the information will be lost. Like said in the responses, it needs `as const` to infer the most narrow type. And TS does inference from left to right, so the call in the end won't fix the types above
@josevalim@Moumin78N You can control how unions distribute using a conditional, returning `K extends K? Pick<T, K>:never` will do it. But it produces wrong results. So the only control mechanism over the distrubution behavior won't fix it (see https://t.co/RxxVW9GnKJ )