Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- interface IOne { (j: string): number; }
- interface ITwo { (j: number): number; }
- function dualArg(i: string, process: IOne | ITwo): number {
- // something like this
- if (process instanceof ITwo) {
- // call with numeric arg
- return process(i);
- } else {
- // conver to number
- return process(+i);
- }
- }
- function inc(i: number): number {
- return ++i;
- }
- function idem(text: string): number {
- return +text;
- }
- it('determine function signature', () => {
- expect(dualArg('1', inc)).toBe(2);
- expect(dualArg('1', idem)).toBe(1);
- })
Add Comment
Please, Sign In to add comment