一种数据类型,由一组名为元素,成员或类型的枚举器的命名值组成。
我对这个结构有疑问: 水果类(枚举): 苹果=“苹果” 班纳纳=“香蕉” 西瓜=“西瓜” 顶部水果 = { 水果.西梅尔...
activation_enum.py 类激活(激活,枚举): RELU = Relu() TANH = Tanh() SIGMOID = SIGMOID() SOFTMAX = Softmax() 基础激活.py 类激活: def 激活(se...
首先,创建一个类型,将枚举键与类型相关联: 枚举 MyEnum { A, 乙 } 类型类型映射 = { [MyEnum.A]:字符串, [MyEnum.B]:数字 } 接口 ObjInterface 首先,创建一个类型,将枚举键与类型相关联: enum MyEnum { A, B } type TypeMap = { [MyEnum.A]:string, [MyEnum.B]:number } interface ObjInterface<T extends keyof TypeMap> { obj: T, objData: TypeMap[T] } interface SecondaryInterface { value: string, objChosen: ObjInterface<keyof TypeMap> } 然后创建一个对象,其中 objData 的类型根据 TypeMap 进行验证: myObj:SecondaryInterface = {value:"", objChosen:{obj:MyEnum.A, objData:"a string"}} 这部分有效,但是当我输入 objData 时,它给出了联合类型提示 'string |数字”而不仅仅是“字符串”,因为它从 keyof TypeMap 推断类型而不是确切的 TypeMap[T]。 是否有可能获得所使用的枚举键及其在类型映射中设置的关联类型的精确类型匹配? 它可以使用类型断言来工作,但是可以在没有类型断言的情况下工作吗?: myObj:SecondaryInterface = {value:"", objChosen:<ObjInterface<MyEnum.A>>{obj:MyEnum.A, objData:"a string"}} 根据您的定义,ObjInterface<MyEnum.A | MyEnum.B>是单个对象类型,其中obj可以是任何MyEnum,objData可以是string | number。但这不是你想要的。您希望 ObjInterface<T> distribute over T 中的 unions,以便 ObjInterface<MyEnum.A | MyEnum.B> 被评估为 ObjInterface<MyEnum.A> | ObjInterface<MyEnum.B>。有不同的方法可以实现这一点,例如使用分布式条件类型,但是当您想要分配的东西类似于键时,我通常更喜欢编写分布式对象类型,如microsoft/TypeScript#47109中所创造的那样。这就是您索引到映射类型的地方。 如果您有一个类似键的类型 K,并且想要将类型函数 F<K> 分布在 K 中的联合上,那么您可以编写 {[P in K]: F<P>}[K]。这会变成一种映射类型,其中 K 的每个成员都有一个属性,该映射类型会立即使用 K 进行索引以形成这些属性的并集。 对于您的代码,如下所示: type ObjInterface<K extends keyof TypeMap> = { [P in K]: { obj: P, objData: TypeMap[P] } }[K] 然后 ObjInterface<keyof TypeMap> 计算为 /* type ObjInterface<keyof TypeMap> = { obj: MyEnum.A; objData: string; } | { obj: MyEnum.B; objData: number; } */ 这不再是严格意义上的 interface,所以也许应该更改名称。 当然,此时您实际上还没有说明为什么需要 ObjInterface 继续保持 通用,如果您关心的只是插入 keyof TypeMap 的话。如果您不需要通用的,您可以将 K 硬编码为 keyof TypeMap 并制作它 type ObjInterface = { [K in keyof TypeMap]: { obj: K, objData: TypeMap[K] } }[keyof TypeMap] 然后剩下的代码是 interface SecondaryInterface { value: string, objChosen: ObjInterface } const myObj: SecondaryInterface = { value: "", objChosen: { obj: MyEnum.A, objData: "a string" } }; // okay myObj.objChosen = { obj: MyEnum.B, objData: 123 }; // okay myObj.objChosen = { obj: MyEnum.A, objData: 123 }; // error 随心所欲。 Playground 代码链接
FastAPI / pydantic:使用空 Depends() 时不考虑 field_validator
我遵循此答案的方法 2,以便能够使用 fastapi 结合附加数据上传多个文件。它运行良好。 开始实施处理后
我有一个通用方法,它使用反射来获取给定类型的PropertyInfo。 PropertyInfo[] 属性 = typeof(TItem).GetProperties(); 如果其中一项属性恰好是...
我有一个函数,它有一个枚举值作为参数。在此特定函数中,我希望枚举值只能具有四个枚举值中的两个。我可以限制预期参数吗?
是否可以动态访问枚举属性? 这是我尝试过的以及我得到的错误。 访问未声明的静态属性ExampleEnum::$id 枚举示例Enum { 情况1; c...
在我的报告中,我需要通过从每个工作项的多选枚举自定义字段中获取值来打印是或否值,如果工作项的自定义字段具有值,则需要将“是”打印到co...
这个问题可能已经在某个地方得到了回答,但仍然如此。 我有一个函数,它有一个枚举值作为参数。在这个特定的函数中,我希望枚举值只能有...
我在Python中有一个枚举,我想确保它的值是唯一的。我发现有两种方法可以用来实现它: 用 @verify(UNIQUE) 包装类 用@包裹整个课程
我有他的枚举: 多属性类(枚举): 红色 = (1, 10) 绿色 = (2, 20) 蓝色 = (3, 20) def __init__(自身, id, val): self.id = id self.val = val 断言 MultiAttr((2, 2...
我想创建一个返回元组值的枚举。当我使用时,我会执行类似 let firstName = myType.name.first 的操作来获取第一个值。但是无论如何,我都可以解压枚举,所以我......
给定一个 C++11 枚举类,嵌套在几个长而丑陋的命名空间中: 名称空间 又长又丑 { 枚举类 颜色 { 红色的, 绿色的, 蓝色的 }; } ...
如何使用python在机器人框架中导入和使用用户定义的枚举类
我目前正在机器人框架中实现一些测试用例。断言检查整数是否有效。我想将其更改为枚举值。这是我的基本要求。 这是机器人...
我在我的Web API项目中遇到了一段代码,其中有一个这样结构的类: 公开课问题Dto { 公共 bool 禁用 {get;set;} 公共 int id {获取;设置;} 公共...
我有一个名为 CarData 的枚举,它接受一个字符串作为输入。映射是在 of 函数中完成的。结果,例如,我会得到“BMW”作为汽车品牌,而不是 TYPE_BMW,以及所有内容
我定义了以下枚举: 从枚举导入枚举 D 类(枚举): x = 1 y = 2 打印(D.x) 现在打印的值为 d.x 相反,我希望打印枚举的值 1 什么可以...
我有一个名为OperationSystemDTO的控制器DTO所期望的json有效负载 { “状态”:真实, “订阅系统”:[ “1”、“3” ...
我有一个模型 Lead,它有一个 Status 字段,该字段通过枚举由多个值组成。 枚举状态:{ 开放:0,关闭:1,合格:2,拒绝:3 } 我正在尝试创建一个选择字段(在