48 lines
1.5 KiB
Plaintext
48 lines
1.5 KiB
Plaintext
|
=== tests/cases/compiler/contextualOverloadListFromUnionWithPrimitiveNoImplicitAny.ts ===
|
||
|
// must target esnext for `String.normalize` to exist
|
||
|
type Validate = (text: string, pos: number, self: Rule) => number | boolean;
|
||
|
>Validate : Validate
|
||
|
>text : string
|
||
|
>pos : number
|
||
|
>self : Rule
|
||
|
|
||
|
interface FullRule {
|
||
|
validate: string | RegExp | Validate;
|
||
|
>validate : string | RegExp | Validate
|
||
|
|
||
|
normalize?: (match: {x: string}) => void;
|
||
|
>normalize : ((match: { x: string;}) => void) | undefined
|
||
|
>match : { x: string; }
|
||
|
>x : string
|
||
|
}
|
||
|
|
||
|
type Rule = string | FullRule;
|
||
|
>Rule : Rule
|
||
|
|
||
|
const obj: {field: Rule} = {
|
||
|
>obj : { field: Rule; }
|
||
|
>field : Rule
|
||
|
>{ field: { validate: (_t, _p, _s) => false, normalize: match => match.x, }} : { field: { validate: (_t: string, _p: number, _s: Rule) => false; normalize: (match: any) => any; }; }
|
||
|
|
||
|
field: {
|
||
|
>field : { validate: (_t: string, _p: number, _s: Rule) => false; normalize: (match: any) => any; }
|
||
|
>{ validate: (_t, _p, _s) => false, normalize: match => match.x, } : { validate: (_t: string, _p: number, _s: Rule) => false; normalize: (match: any) => any; }
|
||
|
|
||
|
validate: (_t, _p, _s) => false,
|
||
|
>validate : (_t: string, _p: number, _s: Rule) => false
|
||
|
>(_t, _p, _s) => false : (_t: string, _p: number, _s: Rule) => false
|
||
|
>_t : string
|
||
|
>_p : number
|
||
|
>_s : Rule
|
||
|
>false : false
|
||
|
|
||
|
normalize: match => match.x,
|
||
|
>normalize : (match: any) => any
|
||
|
>match => match.x : (match: any) => any
|
||
|
>match : any
|
||
|
>match.x : any
|
||
|
>match : any
|
||
|
>x : any
|
||
|
}
|
||
|
};
|