Reactjs 类型脚本语法

Reactjs 类型脚本语法,reactjs,typescript,react-redux,typescript-generics,Reactjs,Typescript,React Redux,Typescript Generics,我对打字脚本还不熟悉,在我公司的一家回购公司工作,该公司大量使用它。(我们正在构建一个React/Redux应用程序。)我熟悉TypeScript泛型的基本概念,但有一点语法让人困惑。下面是一个有问题的代码示例(它位于减速机中): 接口实体状态{ 实体?:实体; 状态:ApiStatus;//枚举 } 接口字段摘要{ 数据类型?:字符串; //其他属性。。。 } 函数单字段(状态:EntityState=defaultEntityState, 动作:动作类型){…} 有人能解释一下Entity

我对打字脚本还不熟悉,在我公司的一家回购公司工作,该公司大量使用它。(我们正在构建一个React/Redux应用程序。)我熟悉TypeScript泛型的基本概念,但有一点语法让人困惑。下面是一个有问题的代码示例(它位于减速机中):

接口实体状态{
实体?:实体;
状态:ApiStatus;//枚举
}
接口字段摘要{
数据类型?:字符串;
//其他属性。。。
}
函数单字段(状态:EntityState=defaultEntityState,
动作:动作类型){…}

有人能解释一下EntityState正在做什么吗?如果需要更多详细信息,请告诉我。

这是泛型类型参数的一个示例

interface EntityState<Entity> {
  entity?: Entity;
  status: ApiStatus;
}
属性
stringEntity.entity
将是
字符串
未定义的
(假定它是可选的)

const numEntity:EntityState;
属性
numEntity.entity
将是
数字
未定义


等等。使用接口时提供的类型参数可以是满足任何约束的任何类型-在您的情况下,类型参数是无约束的。这意味着您可以重复使用接口,因为类型是稍后定义的。

它是泛型类型的实例化
EntityState
将与类型
{entity?:FieldSummary;status:apisostatus;}
等效。。不知道什么不清楚。。是您定义的以后可以传入的任何类型。我在这里记录了React-Typescript语法-因此,要清楚,
EntityState
意味着
state
参数应该具有
EntityState
接口中的
status
属性,并且可以选择具有
entity
属性,无论
FieldSummary
是什么类型?@jdmac-是
EntityState
导致
myEntity.entity
的类型为
null | FieldSummary
@AndyJ-你说得很对。我犯了我以为你犯的错误!我已经改正了。@Fenton不用担心。。。JavaScript是相当混乱的,试图保持所有不同的东西,如空与未定义,以及“真实性”在我自己的头脑中是很难的!进行一次来之不易的投票。
interface EntityState<Entity> {
  entity?: Entity;
  status: ApiStatus;
}
const stringEntity: EntityState<string>;
const numEntity: EntityState<number>;