TypeScript/tests/baselines/reference/localTypeParameterInferencePriority.types

41 lines
1.2 KiB
Plaintext

=== tests/cases/compiler/localTypeParameterInferencePriority.ts ===
export type UnrollOnHover<O extends object> = O extends object ?
>UnrollOnHover : UnrollOnHover<O>
{ [K in keyof O]: O[K]; } :
never;
export type Schema = Record<string, unknown>;
>Schema : Schema
class Table<S extends Schema> {
>Table : Table<S>
__schema!: S;
>__schema : S
// Removing this line, removes the error
getRows<C extends keyof S>(): Array<UnrollOnHover<Pick<S, C>>> {
>getRows : <C extends keyof S>() => Array<UnrollOnHover<Pick<S, C>>>
return null!
>null! : null
>null : null
}
}
class ColumnSelectViewImp<S extends Schema> extends Table<S> { }
>ColumnSelectViewImp : ColumnSelectViewImp<S>
>Table : Table<S>
const ColumnSelectView1: new <S extends Schema>() => Table<UnrollOnHover<S>> = ColumnSelectViewImp;
>ColumnSelectView1 : new <S extends Schema>() => Table<UnrollOnHover<S>>
>ColumnSelectViewImp : typeof ColumnSelectViewImp
const ColumnSelectView2: new <S extends Schema>() => Table<UnrollOnHover<S>> = Table;
>ColumnSelectView2 : new <S extends Schema>() => Table<UnrollOnHover<S>>
>Table : typeof Table