union-types相关内容

如何将联合类型转换为元组类型

例如,我有一个类型: type abc = 'a' | 'b' | 'c'; 如何在编译时创建包含联合的所有元素的元组类型? type t = ['a','b', 'c']; 推荐答案 很容易从元组类型转换为联合类型;例如,请参见this question。但反过来,从联合转换为元组是您不应该尝试的真正糟糕的想法之一。(参见microsoft/TypeScript#132 ..
发布时间:2022-06-20 23:56:29 其他开发

打字稿:如何根据对象键/值类型在 ES6 Map 中创建条目

我想使用 Map 而不是对象映射来声明一些键和值.但是 Typescript 似乎不支持 ES6 Map 的索引类型,是否正确,是否有任何解决方法? 此外,我还想让值类型安全,以便映射中的每个条目都具有与键对应的值的正确类型. 这是一些描述我想要实现的目标的伪代码: type Keys = 'key1' |'key2';类型值 = {'key1':字符串;'key2':数字;}/** ..

为什么类型“从不"?在联合类型中毫无意义?

打字稿操场 我在试图理解类型never 没有意义并且可以在它位于联合类型中时被丢弃这一事实时遇到了一些麻烦. 我的意思是,我在交叉类型中得到它,never 会立即使所有结果都变成 never,因为某些类型不能type 和 never 的类型相同.这对我来说很有意义. 但是在联合类型中,我的直觉最初告诉我never类型将是一个有效的选择.我的问题是为什么不是?为什么 never 可 ..

如何映射联合数组类型?

我有以下结构: interface Test1 {数量:数量;}接口 Test2 扩展了 Test1 {文本:字符串;}让测试:Test1[] |测试2[] = [];test.map(obj => {});//不起作用 我收到错误: 无法调用类型缺少调用签名的表达式.类型 '{ (this: [Test1, Test1, Test1, Test1, Test1], callbackfn ..
发布时间:2021-09-11 20:21:56 其他开发

如何将元组类型转换为联合?

如何将元组泛型类型映射到联合类型? type NeededUnionType= T[keyof T];//包括所有数组属性值const 值:NeededUnionType= 2;//这不应该被允许(2 是元组长度) 预期类型:7 |字符串 解决方案 您可以通过 number 而不是 keyof T 来索引.keyof T 将包含元组对象的所有键,包括长度以及任何其他数组属性. typ ..

如何将联合类型转换为元组类型

例如,我有一个类型: type abc = 'a' |'b' |'C'; 如何在编译时创建一个包含联合所有元素的元组类型? type t = ['a','b', 'c']; 解决方案 从元组类型转换为联合类型很容易;例如,请参阅这个问题.但相反,从联合转换为元组是您不应该尝试做的真正糟糕的想法之一.(有关讨论和规范答案,请参阅 microsoft/TypeScript#13298)让我们 ..
发布时间:2021-09-10 20:03:31 其他开发

mypy,输入提示:Union[float, int] ->有数字类型吗?

mypy 真的很方便,可以捕获很多错误,但是当我编写“科学"应用程序时,我经常会这样做: def my_func(number: Union[float, int]):# 做一点事 number 是浮点数或整数,取决于用户的输入.有官方的方法吗? 解决方案 使用 float only,因为 int 隐含在该类型中: def my_func(number: float): PEP 4 ..
发布时间:2021-06-05 18:34:00 Python

打字稿:如何根据对象键/值类型在ES6地图中进行输入

我想使用Map而不是对象map来声明一些键和值.但是Typescript似乎不支持ES6 Map的索引类型,这是正确的,并且有任何解决方法吗? 此外,我还要使值也成为类型安全的,以便映射中的每个条目都具有与键对应的值的正确类型. 这是一些伪代码,描述了我要实现的目标: type键='key1'|'key2';类型值= {'key1':字符串;'key2':数字;}/**应该显示缺少 ..

打字稿:联合类型作为接口

在这种情况下,我需要一个函数来接受各种不同的类型.它们将由函数中的类型保护分隔.所以我使用的是这样的联合类型: function(param: TypeA | TypeB): void { let callback: (param: TypeA | TypeB): void = () => {}; if (isTypeA(param)) { callback ..
发布时间:2020-07-12 18:56:39 其他开发

将TypeScript联合类型分解为特定类型

我想知道是否可以将联合类型“拆分"为TypeScript中的特定子类型.这是我尝试使用的代码,很明显,我正在尝试从代码片段中实现以下目标: type SplitType = T extends (infer A)|(infer B) ? Something : T; 在此示例中,Something可以是[A, B],或者是完全不同的类型.这意味着SplitT ..
发布时间:2020-07-12 18:56:36 其他开发

打字稿:如何根据联合类型在ES6地图中进行输入

我想使用Map而不是对象map来声明一些键和值.但是Typescript似乎不支持ES6 Map的索引类型,这是正确的,并且有任何解决方法吗? 此外,我还要使值也成为类型安全的,以便映射中的每个条目都具有与键对应的值的正确类型. 这是一些伪代码,描述了我要实现的目标: type Keys = 'key1' | 'key2'; type Values = { 'key1': ..

mypy错误类型具有值限制和联合的变量/可选无法传递通用容器类型

因此,以下示例显然是人为设计的,但我试图保持与我的实际情况相吻合.现在,我已经对此进行了细化,我确信我遗漏了一些明显的东西.考虑几种类型和受限制的联合: from typing import Union, TypeVar, Optional, Generic, overload class Foo: def __init__(self, x: int)-> None: ..
发布时间:2020-07-12 18:56:29 Python

无法使用未定义的属性缩小简单的TypeScript联合类型

我有两种联合类型,一种具有属性,另一种则没有.我以为检查该属性是否存在可以缩小范围,但是它不起作用. 我创建了非常相似的事情似乎正常.我使用工会的方式错误吗? 为完整起见,以下是代码: export interface AuthenticatedProfile { readonly userId: string; readonly name: string; } ..
发布时间:2020-07-12 18:56:26 其他开发

返回类型与TypeScript中的输入类型相同

我有两个函数可以做相同的事情,唯一的区别是输入类型和返回类型不同.我想知道如何将这些功能“合并"为一个,其中一个想法是使用联合类型,但是我的约束是当输入是联合的一个成员时,返回值必须相同. const getViewStyle = (styles: ViewStyle[]): ViewStyle => { return Object.assign({}, ...styles); }; ..
发布时间:2020-07-12 18:56:18 其他开发