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
|
=== tests/cases/compiler/func.ts ===
interface ComponentOptions<V> {
watch: Record<string, WatchHandler<any>>;
>watch : Record<string, WatchHandler<any>>
}
type WatchHandler<T> = (val: T) => void;
>WatchHandler : WatchHandler<T>
>val : T
declare function extend(options: ComponentOptions<{}>): void;
>extend : (options: ComponentOptions<{}>) => void
>options : ComponentOptions<{}>
export var vextend = extend;
>vextend : (options: ComponentOptions<{}>) => void
>extend : (options: ComponentOptions<{}>) => void
=== tests/cases/compiler/app.js ===
import {vextend} from './func';
>vextend : (options: ComponentOptions<{}>) => void
// hover on vextend
export var a = vextend({
>a : void
>vextend({ watch: { data1(val) { this.data2 = 1; }, data2(val) { }, }}) : void
>vextend : (options: ComponentOptions<{}>) => void
>{ watch: { data1(val) { this.data2 = 1; }, data2(val) { }, }} : { watch: { data1(val: any): void; }; }
watch: {
>watch : { data1(val: any): void; }
>{ data1(val) { this.data2 = 1; }, data2(val) { }, } : { data1(val: any): void; }
data1(val) {
>data1 : (val: any) => void
>val : any
this.data2 = 1;
>this.data2 = 1 : 1
>this.data2 : (val: any) => void
>this : Record<string, (val: any) => void>
>data2 : (val: any) => void
>1 : 1
},
data2(val) { },
>data2 : any
>val : any
}
});
|