* Fix for #13840: Remove map tuple overloads * Coalesce signatures on array that use this args * Remove generic signatures * Add comments to toLocalString * clean up typed array interfaces
88 lines
2.7 KiB
Plaintext
88 lines
2.7 KiB
Plaintext
=== tests/cases/compiler/bestChoiceType.ts ===
|
|
// Repro from #10041
|
|
|
|
(''.match(/ /) || []).map(s => s.toLowerCase());
|
|
>(''.match(/ /) || []).map(s => s.toLowerCase()) : string[]
|
|
>(''.match(/ /) || []).map : <U>(callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[]
|
|
>(''.match(/ /) || []) : RegExpMatchArray
|
|
>''.match(/ /) || [] : RegExpMatchArray
|
|
>''.match(/ /) : RegExpMatchArray | null
|
|
>''.match : (regexp: string | RegExp) => RegExpMatchArray | null
|
|
>'' : ""
|
|
>match : (regexp: string | RegExp) => RegExpMatchArray | null
|
|
>/ / : RegExp
|
|
>[] : never[]
|
|
>map : <U>(callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[]
|
|
>s => s.toLowerCase() : (s: string) => string
|
|
>s : string
|
|
>s.toLowerCase() : string
|
|
>s.toLowerCase : () => string
|
|
>s : string
|
|
>toLowerCase : () => string
|
|
|
|
// Similar cases
|
|
|
|
function f1() {
|
|
>f1 : () => void
|
|
|
|
let x = ''.match(/ /);
|
|
>x : RegExpMatchArray | null
|
|
>''.match(/ /) : RegExpMatchArray | null
|
|
>''.match : (regexp: string | RegExp) => RegExpMatchArray | null
|
|
>'' : ""
|
|
>match : (regexp: string | RegExp) => RegExpMatchArray | null
|
|
>/ / : RegExp
|
|
|
|
let y = x || [];
|
|
>y : RegExpMatchArray
|
|
>x || [] : RegExpMatchArray
|
|
>x : RegExpMatchArray | null
|
|
>[] : never[]
|
|
|
|
let z = y.map(s => s.toLowerCase());
|
|
>z : string[]
|
|
>y.map(s => s.toLowerCase()) : string[]
|
|
>y.map : <U>(callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[]
|
|
>y : RegExpMatchArray
|
|
>map : <U>(callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[]
|
|
>s => s.toLowerCase() : (s: string) => string
|
|
>s : string
|
|
>s.toLowerCase() : string
|
|
>s.toLowerCase : () => string
|
|
>s : string
|
|
>toLowerCase : () => string
|
|
}
|
|
|
|
function f2() {
|
|
>f2 : () => void
|
|
|
|
let x = ''.match(/ /);
|
|
>x : RegExpMatchArray | null
|
|
>''.match(/ /) : RegExpMatchArray | null
|
|
>''.match : (regexp: string | RegExp) => RegExpMatchArray | null
|
|
>'' : ""
|
|
>match : (regexp: string | RegExp) => RegExpMatchArray | null
|
|
>/ / : RegExp
|
|
|
|
let y = x ? x : [];
|
|
>y : RegExpMatchArray
|
|
>x ? x : [] : RegExpMatchArray
|
|
>x : RegExpMatchArray | null
|
|
>x : RegExpMatchArray
|
|
>[] : never[]
|
|
|
|
let z = y.map(s => s.toLowerCase());
|
|
>z : string[]
|
|
>y.map(s => s.toLowerCase()) : string[]
|
|
>y.map : <U>(callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[]
|
|
>y : RegExpMatchArray
|
|
>map : <U>(callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[]
|
|
>s => s.toLowerCase() : (s: string) => string
|
|
>s : string
|
|
>s.toLowerCase() : string
|
|
>s.toLowerCase : () => string
|
|
>s : string
|
|
>toLowerCase : () => string
|
|
}
|
|
|