Closed
Description
Bug Report
π Search Terms
completions string return contextual signature
π Version & Regression Information
- This is the behavior in every version I tried
β― Playground Link
Playground link with relevant code
π» Code
type ActorRef<TEvent extends { type: string }> = {
send: (ev: TEvent) => void;
};
type Action<TContext> = {
(ctx: TContext): void;
};
type Config<TContext> = {
entry: Action<TContext>;
};
declare function createMachine<TContext>(config: Config<TContext>): void;
type EventFrom<T> = T extends ActorRef<infer TEvent>
? TEvent
: never;
declare function sendTo<TContext, TActor extends ActorRef<any>>(
actor: (ctx: TContext) => TActor,
event: EventFrom<TActor>
): Action<TContext>;
createMachine<{
child: ActorRef<{ type: "EVENT" }>;
}>({
entry: sendTo((ctx) => ctx.child, { type: /*1*/ }),
});
createMachine<{
child: ActorRef<{ type: "EVENT" }>;
}>({
entry: sendTo((ctx) => ctx.child, { type: "/*2*/" }),
});
π Actual behavior
At marker 2 TypeScript fails to provide a string completion
π Expected behavior
I expect the string completion at marker 2 to behave in the same way as the regular completion at marker 1