Typescript将泛型函数参数强制转换为object

时间:2018-01-31 12:17:19

标签: javascript typescript generics

如何创建泛型函数类型,并将其参数作为返回类型的一部分进行转换。这样的事情:

interface Actions {
  [fn: string]: <T>(...args: T[]){
      type: string;
      payload: {...T}
  }
}

我的意思是有效负载应该是一个对象,它包含与函数参数及其类型相关的属性。

这是一个如何运作的例子:

const someActions: Actions {

  // valid type method (has the same payload structure as arguments)
  addItem: (item: SomeItemType){
    type: "ADD_NEW_ITEM",
    payload: { item }
  },

  // invalid type method (has different payload and arguments structure)
  removeItem: (itemId: number, mode: SomeModeType){
    type: "REMOVE_ITEM",
    payload: {id : 0}
  }
}

0 个答案:

没有答案