41 lines
1.2 KiB
Plaintext
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
|
||
|
|