TYpescript:作为类

时间:2016-09-27 06:30:34

标签: class typescript static static-methods late-binding

我有一个继承现有fn的{​​{1}}(以Angular1 $ q为例)

fn

如果我想装饰它,我会这样做:

//$q original behavior
var defer = $q.defer();
defer.promise.then(function(result){})
//or
$q( (resolve, reject) => {
   //promise execution here
}).then(function(result){});

问题是打字稿抱怨     财产var Qdecorator = function($delegate) { var Q = function(resolver:any): any { //do some extra stuff here return $delegate.apply($delegate, arguments); } //Assign the static methods here: Q.defer = function() { //do some stuff return $delegate.defer.apply($delegate, []); } //same goes for race, when, resole reject and so on return Q; } defer race, when, resolve, etc...

我尝试使用does not exist on type '(resolver: any) => any'IQService但没有运气,我想提出更全面的问题:

如何在不使用IPromise

的函数()上定义返回对象的后期静态方法

1 个答案:

答案 0 :(得分:0)

我正在通过此链接复制粘贴我的问题的答案: https://www.typescriptlang.org/docs/handbook/interfaces.html

interface Counter {
  (start: number): string;
  interval: number;
  reset(): void;
}

function getCounter(): Counter {
  let counter = <Counter>function (start: number) { };
  counter.interval = 123;
  counter.reset = function () { };
  return counter;
}

let c = getCounter();
c(10);
c.reset();
c.interval = 5.0;
相关问题