lib-utils-ts
Version:
<img src="https://img.shields.io/npm/v/lib-utils-ts"/> <img src="https://img.shields.io/snyk/vulnerabilities/npm/lib-utils-ts"/> <img src="https://img.shields.io/npm/l/lib-utils-ts"/> <img src="https://img.shields.io/github/languages/top/devGnode/lib-util
16 lines (12 loc) • 588 B
text/typescript
import {BiFunction} from "../Interface";
export class BiFunctionImpl<T,U,R> extends Function implements BiFunction<T,U,R>{
public apply(a:T, b:U):R{ return this.call(null, a, b); }
public static of<T, U, R>(func:Function):BiFunctionImpl<T, U, R>{
if(func instanceof BiFunctionImpl)return func;
return new class BiFunction<T, U, R> extends BiFunctionImpl<T, U, R>{
apply(a: T, b: U): R {return func(a,b);}
}
}
public call(thisArg: any, ...argArray:any[]): any {return this.apply(argArray[0],argArray[1]);}
}
Object.package(this);