React/Typescript -语法困惑



我刚开始使用Typescript/React,我试图理解这一切意味着什么。我有c#背景,所以这对我来说有点新。我已经看了一些教程,但我仍然对这个的语法有点困惑。

对于初学者来说,这一行到底是什么意思呢?

type OnUserClick = (u: UserTat) => any

这个接口…定义onClick函数为() => OnUserClick而不是OnUserClick…为什么会这样?

interface IBProps {
user: UserTat
onClick: () => OnUserClick
}
type OnUserClick = (u: UserTat) => any

OnUserClick是一个接受一个参数的函数(在类型定义中命名为u,但JS/TS没有命名参数,所以使用时可以调用任何名称);该参数的类型是UserTat,该函数返回any,这意味着它可以是任何可能的返回类型。写下any通常不是一个好主意,因为任何调用该函数的代码都必须强制转换返回值,或者自己检查返回的是什么。

interface IBProps {
user: UserTat
onClick: () => OnUserClick
}

这个接口意味着任何实现IBProps的东西都有两个属性:一个是UserTat类型的user,一个是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)

interface IBProps {
user: UserTat
onClick: () => OnUserClick
}

定义一个接口,它包括:

  1. user from typeUserTat
  2. 上面声明的OnUserClick类型的onClick函数

最新更新