Guest User

Untitled

a guest
Feb 21st, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.65 KB | None | 0 0
  1. interface IOne { (j: string): number; }
  2. interface ITwo { (j: number): number; }
  3. function dualArg(i: string, process: IOne | ITwo): number {
  4. // something like this
  5. if (process instanceof ITwo) {
  6. // call with numeric arg
  7. return process(i);
  8. } else {
  9. // conver to number
  10. return process(+i);
  11. }
  12. }
  13. function inc(i: number): number {
  14. return ++i;
  15. }
  16. function idem(text: string): number {
  17. return +text;
  18. }
  19. it('determine function signature', () => {
  20. expect(dualArg('1', inc)).toBe(2);
  21. expect(dualArg('1', idem)).toBe(1);
  22. })
Add Comment
Please, Sign In to add comment