1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
// @noEmit: true
// @strict: true
// repro from #50539
interface StateSchema {
states?: {
[key: string]: StateSchema;
};
}
declare class StateNode<TStateSchema extends StateSchema> {
schema: TStateSchema;
}
type StateNodesConfig<TStateSchema extends StateSchema> = {
[K in keyof TStateSchema["states"]]: StateNode<NonNullable<TStateSchema["states"]>[K]>;
};
// repro from #50539#issuecomment-1234067835
type Ordering<TOrderBy extends string> = {
orderBy: TOrderBy
}
type Query<TOrderBy extends string> = {
order?: Ordering<TOrderBy>
}
type QueryHandler<
TQuery extends Query<TOrderBy>,
TOrderBy extends string = NonNullable<TQuery["order"]>["orderBy"]
> = {}
|