Reactjs React/Typescript-语法混乱

Reactjs React/Typescript-语法混乱,reactjs,typescript,Reactjs,Typescript,我只是从Typescript/React开始,我试图理解这一切意味着什么。我来自C#背景,所以这对我来说有点陌生。我已经阅读了一些教程,但是我对这个的语法仍然有点困惑 首先,这句话到底是什么意思 type OnUserClick = (u: UserTat) => any 这个界面。。。onClick功能定义为()=>OnUserClick,而不是OnUserClick。。。为什么会这样 interface IBProps { user: UserTat onClick: ()

我只是从Typescript/React开始,我试图理解这一切意味着什么。我来自C#背景,所以这对我来说有点陌生。我已经阅读了一些教程,但是我对这个的语法仍然有点困惑

首先,这句话到底是什么意思

type OnUserClick = (u: UserTat) => any
这个界面。。。
onClick
功能定义为
()=>OnUserClick
,而不是
OnUserClick
。。。为什么会这样

interface IBProps {
  user: UserTat
  onClick: () => OnUserClick
}
OnUserClick是一个接受一个参数的函数(在类型定义中名为
u
,但JS/TS没有命名参数,因此使用时可以调用任何参数);该参数的类型为UserTat,函数返回
any
,这意味着它可以是任何可能的返回类型。写下
any
通常不是一个好主意,因为调用该函数的任何代码都必须转换返回值或进行自己的检查以确定返回了什么

interface IBProps {
  user: UserTat
  onClick: () => OnUserClick
}
这个接口意味着任何实现IBProps的东西都有两个属性:UserTat类型的user和onClick类型的onClick,onClick是一个不带参数并返回OnUserClick类型的函数。一个例子(构成UserTat的定义)是:

{
  user: { name: 'Zac Anger' ... }
  onClick: () => (u) => ({ clicked: 'true' })
}
由于OnUserClick本身被定义为一个返回某些内容的函数,因此IBProps的这一部分可能是一个bug;这是说,
IBProps.onClick
是一个函数,它返回一个接受UserTat并返回any的函数

type OnUserClick = (u: UserTat) => any
定义
OnUserClick
是一个函数,它接受来自
UserTat
类型的参数
u
,并返回任何类型(
any

定义一个接口,该接口包括:

  • 用户来自类型
    UserTat
  • onClick函数从类型
    onuser单击上面声明的

  • 第一行创建一个自定义类型,该类型是一个函数,其参数类型为
    UserTat
    ,返回类型为
    any
    。然后,在界面中,您声明
    onClick
    是一个函数,它返回类型为
    OnUserClick
    (您在上面一行中定义的)的函数(即sai,它是一个回调)如果它只是
    onClick:OnUserClick
    ,是否有意义?取决于实现该接口的代码-如果onClick被传递给UserTat对象,则是。我必须看到使用该接口的代码才能确定。
    type OnUserClick = (u: UserTat) => any
    
    interface IBProps {
      user: UserTat
      onClick: () => OnUserClick
    }