tests/cases/compiler/deferredLookupTypeResolution2.ts(14,13): error TS2536: Type '({ [K in keyof T]: "true"; } & { [key: string]: "false"; })["1"]' cannot be used to index type '{ true: "true"; }'.
tests/cases/compiler/deferredLookupTypeResolution2.ts(19,21): error TS2536: Type '({ true: "otherwise"; } & { [k: string]: "true"; })[({ [K in keyof T]: "true"; } & { [key: string]: "false"; })["1"]]' cannot be used to index type '{ true: "true"; }'.


==== tests/cases/compiler/deferredLookupTypeResolution2.ts (2 errors) ====
    // Repro from #17456
    
    type StringContains<S extends string, L extends string> = ({ [K in S]: 'true' } & { [key: string]: 'false'})[L];
    
    type ObjectHasKey<O, L extends string> = StringContains<keyof O, L>;
    
    type A<T> = ObjectHasKey<T, '0'>;
    
    type B = ObjectHasKey<[string, number], '1'>;  // "true"
    type C = ObjectHasKey<[string, number], '2'>;  // "false"
    type D = A<[string]>;  // "true"
    
    // Error, "false" not handled
    type E<T> = { true: 'true' }[ObjectHasKey<T, '1'>];
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2536: Type '({ [K in keyof T]: "true"; } & { [key: string]: "false"; })["1"]' cannot be used to index type '{ true: "true"; }'.
    
    type Juxtapose<T> = ({ true: 'otherwise' } & { [k: string]: 'true' })[ObjectHasKey<T, '1'>];
    
    // Error, "otherwise" is missing
    type DeepError<T> = { true: 'true' }[Juxtapose<T>];
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2536: Type '({ true: "otherwise"; } & { [k: string]: "true"; })[({ [K in keyof T]: "true"; } & { [key: string]: "false"; })["1"]]' cannot be used to index type '{ true: "true"; }'.
    
    type DeepOK<T> = { true: 'true', otherwise: 'false' }[Juxtapose<T>];
    