Guest User

Untitled

a guest
Feb 17th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.48 KB | None | 0 0
  1. type RT<F> = F extends (...args: any[]) => infer R ? R : never;
  2.  
  3. interface Proxy<T, K extends keyof T> {
  4. returnValue(value: RT<T[K]>): this;
  5. }
  6. declare function spyOn<T, K extends keyof T>(obj: T, methodName: K): {
  7. and: Proxy<T, K>;
  8. };
  9.  
  10. const serviceToTest = {
  11. methodToBeMocked() {
  12. return "SomeStringHardToFetch";
  13. }
  14. };
  15.  
  16. spyOn(serviceToTest, "methodToBeMocked").and.returnValue("fake value");
  17. // spyOn(serviceToTest, "methodToBeMocked").and.returnValue(10000); // Compilation Error
Add Comment
Please, Sign In to add comment