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