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編譯爲ES6。雖然此代碼在TypeScript Playground中運行良好,但它在tsc 1.8.10(屬性<<name>>
在「函數」類型中不存在)失敗,因爲它無法與lib.es6.d.ts中的函數定義合併。TypeScript合併函數接口,擴展函數原型
任何想法如何正確地做到這一點?
然後TSC不會看到像調用方法和應用,基本上是在lib.es6.d.ts.宣佈一切我想合併這些定義。 – m1gu3l
請參閱我已確認的編輯作品。 – 2016-08-19 12:53:20
src/utils/Function.augment.ts(13,15):錯誤TS2339:'Function'類型中不存在'call'屬性。 – m1gu3l