typeValues<T>=T[keyofT];typeProvidedActor={src: string;logic: unknown;};interfaceStateMachineConfig<TActorsextendsProvidedActor>{invoke: {src: TActors["src"];};}declarefunctionsetup<TActorsextendsRecord<string,unknown>>(_: {actors: {[KinkeyofTActors]: TActors[K];};}): {createMachine: (config: StateMachineConfig<Values<{[KinkeyofTActorsasK&string]: {src: K;logic: TActors[K];};}>>,)=>void;};Type 'Values<{ [K in keyof TActors as K & string]: { src: K; logic: TActors[K]; }; }>' does not satisfy the constraint 'ProvidedActor'.
Types of property 'src' are incompatible.
Type 'keyof { [K in keyof TActors as K & string]: { src: K; logic: TActors[K]; }; }' is not assignable to type 'string'.
Type 'string | number | symbol' is not assignable to type 'string'.
Type 'number' is not assignable to type 'string'.(2344)
🔎 Search Terms
keyof index constraint filtering mapped
🕗 Version & Regression Information
⏯ Playground Link
https://www.typescriptlang.org/play?ts=5.3.0-dev.20231027#code/C4TwDgpgBAaghgGwK4QM4B4AqA+KBeKTAbQGsIQB7AM0IF0BuAKEdEigAUAnCgNwEsAJhAEBBAMbAKnfFADejKFFScxALiXBOfAHYBzJooQVdfNVCTaS2igHdtTAL5NGO4BE5U4Y6AGVgcNwBZLwALHQgAYQptKj5dLHFJTlQoCAAPN20BFK5eQWFEqVx5RR0eCjJ1EsUlFXVMQuSiACJlMWaGBSgnRgdmITEEOE5oKgsJPmilCGAkMASJKRT0zOyoACUIMSkBdFRNHV0AGnNLaztsbAAKAH0qrq8k1HuaqCIAaSgdKDJKGgbFslaPVGqgPp1FD0HABKF5QMQjAIQYJiMLaCDqK5dRTbGJxdR+JEotGRaKxeLYmrwZBodDVV6KD5fbQ-cjUQigqBwFKfABkGi0emBckpDNqZneBjFNSMJjMAKe4KlYp6KuwlOwRy60PwuHKgkcTCAA
💻 Code
🙁 Actual behavior
🙂 Expected behavior
It should typecheck
Additional information about the issue
Almost the same thing typechecks OK if we refactor this to
[K in keyof TActors & string].