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
|
=== tests/cases/compiler/spyComparisonChecking.ts ===
interface Spy {
>Spy : Symbol(Spy, Decl(spyComparisonChecking.ts, 0, 0))
(...params: any[]): any;
>params : Symbol(params, Decl(spyComparisonChecking.ts, 1, 5))
identity: string;
>identity : Symbol(Spy.identity, Decl(spyComparisonChecking.ts, 1, 28))
and: Function;
>and : Symbol(Spy.and, Decl(spyComparisonChecking.ts, 3, 21))
>Function : Symbol(Function, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
mostRecentCall: { args: any[]; };
>mostRecentCall : Symbol(Spy.mostRecentCall, Decl(spyComparisonChecking.ts, 4, 18))
>args : Symbol(args, Decl(spyComparisonChecking.ts, 5, 21))
argsForCall: any[];
>argsForCall : Symbol(Spy.argsForCall, Decl(spyComparisonChecking.ts, 5, 37))
}
type SpyObj<T> = T & {
>SpyObj : Symbol(SpyObj, Decl(spyComparisonChecking.ts, 7, 1))
>T : Symbol(T, Decl(spyComparisonChecking.ts, 9, 12))
>T : Symbol(T, Decl(spyComparisonChecking.ts, 9, 12))
[k in keyof T]: Spy;
>k : Symbol(k, Decl(spyComparisonChecking.ts, 10, 5))
>T : Symbol(T, Decl(spyComparisonChecking.ts, 9, 12))
>Spy : Symbol(Spy, Decl(spyComparisonChecking.ts, 0, 0))
}
declare function createSpyObj<T>(
>createSpyObj : Symbol(createSpyObj, Decl(spyComparisonChecking.ts, 11, 1))
>T : Symbol(T, Decl(spyComparisonChecking.ts, 13, 30))
name: string, names: Array<keyof T>): SpyObj<T>;
>name : Symbol(name, Decl(spyComparisonChecking.ts, 13, 33))
>names : Symbol(names, Decl(spyComparisonChecking.ts, 14, 17))
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
>T : Symbol(T, Decl(spyComparisonChecking.ts, 13, 30))
>SpyObj : Symbol(SpyObj, Decl(spyComparisonChecking.ts, 7, 1))
>T : Symbol(T, Decl(spyComparisonChecking.ts, 13, 30))
function mock<T>(spyName: string, methodNames: Array<keyof T>): SpyObj<T> {
>mock : Symbol(mock, Decl(spyComparisonChecking.ts, 14, 52))
>T : Symbol(T, Decl(spyComparisonChecking.ts, 16, 14))
>spyName : Symbol(spyName, Decl(spyComparisonChecking.ts, 16, 17))
>methodNames : Symbol(methodNames, Decl(spyComparisonChecking.ts, 16, 33))
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
>T : Symbol(T, Decl(spyComparisonChecking.ts, 16, 14))
>SpyObj : Symbol(SpyObj, Decl(spyComparisonChecking.ts, 7, 1))
>T : Symbol(T, Decl(spyComparisonChecking.ts, 16, 14))
const spyObj = createSpyObj<T>(spyName, methodNames);
>spyObj : Symbol(spyObj, Decl(spyComparisonChecking.ts, 17, 9))
>createSpyObj : Symbol(createSpyObj, Decl(spyComparisonChecking.ts, 11, 1))
>T : Symbol(T, Decl(spyComparisonChecking.ts, 16, 14))
>spyName : Symbol(spyName, Decl(spyComparisonChecking.ts, 16, 17))
>methodNames : Symbol(methodNames, Decl(spyComparisonChecking.ts, 16, 33))
for (const methodName of methodNames) {
>methodName : Symbol(methodName, Decl(spyComparisonChecking.ts, 18, 14))
>methodNames : Symbol(methodNames, Decl(spyComparisonChecking.ts, 16, 33))
spyObj[methodName].and.returnValue(1);
>spyObj[methodName].and : Symbol(Spy.and, Decl(spyComparisonChecking.ts, 3, 21))
>spyObj : Symbol(spyObj, Decl(spyComparisonChecking.ts, 17, 9))
>methodName : Symbol(methodName, Decl(spyComparisonChecking.ts, 18, 14))
>and : Symbol(Spy.and, Decl(spyComparisonChecking.ts, 3, 21))
}
return spyObj;
>spyObj : Symbol(spyObj, Decl(spyComparisonChecking.ts, 17, 9))
}
|