如何返回动态类型取决于函数中的参数类型

时间:2018-07-14 15:39:04

标签: reactjs function typescript

我的代码如下

const styles = ({palette, appStyle}: TTheme) => ({
  component: { backgroundColor: palette.primary},
  text: appStyle.text,

const withStyle = (customStyle) => 
  customStyle({
    palette: { primary: 'red'},
    appStyle: {text: {color: 'red'}},
  })

如何定义此功能的类型const withStyle = (customStyle)

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您可以在函数的类型签名中使用类型参数,如下所示:

function withStyle<T extends TTheme, U>(styles: (T) => U) {
  ...
}

这意味着函数withStyle带有一个自变量,该参数本身就是一个函数,类型为T,它是TTheme的子类,并返回其他类型的{ {1}}。

从您的问题中并不清楚类型签名是什么,但关键是您需要使用generic type parameters