1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
=== tests/cases/compiler/varianceCallbacksAndIndexedAccesses.ts ===
type Source = {
>Source : Source
<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
>type : K
>listener : (this: Window, ev: WindowEventMap[K]) => any
>this : Window
>ev : WindowEventMap[K]
>options : boolean | AddEventListenerOptions
(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
>type : string
>listener : EventListenerOrEventListenerObject
>options : boolean | AddEventListenerOptions
}
interface Action1<T> {
(arg: T): void;
>arg : T
}
interface MessageEventLike<T> {
source: WindowLike<T>;
>source : WindowLike<T>
origin: string;
>origin : string
data: T;
>data : T
}
interface PostMessageObject<T> {
postMessage(message: T, host: string): void;
>postMessage : (message: T, host: string) => void
>message : T
>host : string
}
interface WindowLike<T> extends PostMessageObject<T> {
addEventListener(type: "message", handler: Action1<MessageEventLike<T>>): void;
>addEventListener : { (type: "message", handler: Action1<MessageEventLike<T>>): void; (type: string, handler: Action1<any>): void; }
>type : "message"
>handler : Action1<MessageEventLike<T>>
addEventListener(type: string, handler: Action1<any>): void;
>addEventListener : { (type: "message", handler: Action1<MessageEventLike<T>>): void; (type: string, handler: Action1<any>): void; }
>type : string
>handler : Action1<any>
removeEventListener(type: "message", handler: Action1<MessageEventLike<T>>): void;
>removeEventListener : { (type: "message", handler: Action1<MessageEventLike<T>>): void; (type: string, handler: Action1<any>): void; }
>type : "message"
>handler : Action1<MessageEventLike<T>>
removeEventListener(type: string, handler: Action1<any>): void;
>removeEventListener : { (type: "message", handler: Action1<MessageEventLike<T>>): void; (type: string, handler: Action1<any>): void; }
>type : string
>handler : Action1<any>
}
type Target = {
>Target : Target
(type: "message", handler: Action1<MessageEventLike<any>>): void;
>type : "message"
>handler : Action1<MessageEventLike<any>>
(type: string, handler: Action1<any>): void;
>type : string
>handler : Action1<any>
};
function f1(s: Source, t: Target) {
>f1 : (s: Source, t: Target) => void
>s : Source
>t : Target
t = s;
>t = s : Source
>t : Target
>s : Source
}
|