1

目前IDialogOptions解析签名是

resolve? : ng.IPromise<any>

根据文档,它还可以接受返回承诺的函数,因此我将其更改为以下内容。

interface IDialogOptions {
  //more options
  resolve ? : {
    [index: string]: (...any) => angular.IPromise < any > | angular.IPromise < any >
  }
}

但问题是它也应该能够接受带有字符串的数组,并且数组的最后一个元素需要是一个函数。像这样的东西

['dependency1', 'dependency2', (dependency1, dependency2) : angular.IPromise<any> => {
  // somecode returning a promise.
}]

这在打字稿中可能吗?

angula材料打字稿的完整源代码

4

1 回答 1

0

不确定这是否会解决您的问题,但我在解决问题时遇到了问题,并认为这可能会对您或其他人有所帮助。

而不是这样做:

resolve: { 
  //this function returns an ng.IPromise<any>
  customers: this.service.getCustomer(42)  
}

这将抛出和错误,因为您只传递函数,而不是调用,因此没有参数只是包装在 anon 函数中

resolve: { 
  //this function returns an ng.IPromise<any>
  customers: () => this.service.getCustomer(42)
}

记住一行箭头功能自动返回。

于 2017-05-03T13:35:59.067 回答