0
interface Function {
next(next: Function): Function;
prev(prev: Function): Function;
}
Function.prototype.next = function(next) {
const prev = this;
return function() {
return next.call(this, prev.apply(this, arguments));
};
};
Function.prototype.prev = function(prev) {
const next = this;
return function() {
return next.call(this, prev.apply(this, arguments));
};
};
const f1 = function() { console.log("f1"); };
const f2 =() => console.log("f2");
const f3 = new Function("console.log('f3');");
f1.next(f2).next(f3)();
TypeScriptコンパイルでFunction prototypeをES6に拡張したいと思っていました。このコードはTypeScript Playgroundでうまく機能しますが、lib.es6.d.tsのFunction定義とマージできないため、tsc 1.8.10では(プロパティ<<name>>
はタイプ 'Function'には存在しません)失敗します。TypeScript merge関数のインタフェース、extend関数プロトタイプ
どのように正しく行うにはどのようなアイデアですか? docsによれば
その後TSCは、コールのようなメソッドを参照して適用されません、lib.es6.d.ts.で宣言された基本的にすべてのもの私はそれらの定義をマージしたいと思います。 – m1gu3l
私の作品を確認した私の編集を参照してください。 –
src/utils/Function.augment.ts(13,15):エラーTS2339: '関数'の型に 'call'プロパティが存在しません。 – m1gu3l