union-types相关内容
例如,我有一个类型: type abc = 'a' | 'b' | 'c'; 如何在编译时创建包含联合的所有元素的元组类型? type t = ['a','b', 'c']; 推荐答案 很容易从元组类型转换为联合类型;例如,请参见this question。但反过来,从联合转换为元组是您不应该尝试的真正糟糕的想法之一。(参见microsoft/TypeScript#132
..
我想使用 Map 而不是对象映射来声明一些键和值.但是 Typescript 似乎不支持 ES6 Map 的索引类型,是否正确,是否有任何解决方法? 此外,我还想让值类型安全,以便映射中的每个条目都具有与键对应的值的正确类型. 这是一些描述我想要实现的目标的伪代码: type Keys = 'key1' |'key2';类型值 = {'key1':字符串;'key2':数字;}/**
..
打字稿操场 我在试图理解类型never 没有意义并且可以在它位于联合类型中时被丢弃这一事实时遇到了一些麻烦. 我的意思是,我在交叉类型中得到它,never 会立即使所有结果都变成 never,因为某些类型不能type 和 never 的类型相同.这对我来说很有意义. 但是在联合类型中,我的直觉最初告诉我never类型将是一个有效的选择.我的问题是为什么不是?为什么 never 可
..
示例: 向我解释 keyof typeof 在 TypeScript 中的含义 enum ColorsEnum {白色 = '#ffffff',黑色 = '#000000',}type Colors = keyof typeof ColorsEnum; 最后一行相当于: type Colors = "white";|“黑色" 但它是如何工作的? 我希望 typeof Color
..
我有以下结构: interface Test1 {数量:数量;}接口 Test2 扩展了 Test1 {文本:字符串;}让测试:Test1[] |测试2[] = [];test.map(obj => {});//不起作用 我收到错误: 无法调用类型缺少调用签名的表达式.类型 '{ (this: [Test1, Test1, Test1, Test1, Test1], callbackfn
..
如何将元组泛型类型映射到联合类型? 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)让我们
..
我有以下一段代码导致 TypeScript 编译错误: type Promisable = (() => Promise) |(() => Promise);const func = async (promisable: Promisable) =>{等待 Promise.all([promisable()]);}; 错误如下 没有与此调用匹配的过载.最后一次重载给出了以下错误.'(Pr
..
mypy 真的很方便,可以捕获很多错误,但是当我编写“科学"应用程序时,我经常会这样做: def my_func(number: Union[float, int]):# 做一点事 number 是浮点数或整数,取决于用户的输入.有官方的方法吗? 解决方案 使用 float only,因为 int 隐含在该类型中: def my_func(number: float): PEP 4
..
使用Typescript 3.5.1,我似乎无法获取要编译的值的类型.对于以下内容: type foo ='a'|'b'const x:Map=新地图([['a',{'ok':'so'}],['b',{'nah':'right'}]]) tsc倒闭 const x:Map输入'M
..
我想使用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
..
我想知道是否可以将联合类型“拆分"为TypeScript中的特定子类型.这是我尝试使用的代码,很明显,我正在尝试从代码片段中实现以下目标: type SplitType = T extends (infer A)|(infer B) ? Something : T; 在此示例中,Something可以是[A, B],或者是完全不同的类型.这意味着SplitT
..
我想使用Map而不是对象map来声明一些键和值.但是Typescript似乎不支持ES6 Map的索引类型,这是正确的,并且有任何解决方法吗? 此外,我还要使值也成为类型安全的,以便映射中的每个条目都具有与键对应的值的正确类型. 这是一些伪代码,描述了我要实现的目标: type Keys = 'key1' | 'key2'; type Values = { 'key1':
..
因此,以下示例显然是人为设计的,但我试图保持与我的实际情况相吻合.现在,我已经对此进行了细化,我确信我遗漏了一些明显的东西.考虑几种类型和受限制的联合: from typing import Union, TypeVar, Optional, Generic, overload class Foo: def __init__(self, x: int)-> None:
..
我有两种联合类型,一种具有属性,另一种则没有.我以为检查该属性是否存在可以缩小范围,但是它不起作用. 我创建了非常相似的事情似乎正常.我使用工会的方式错误吗? 为完整起见,以下是代码: export interface AuthenticatedProfile { readonly userId: string; readonly name: string; }
..
说已经定义了一个类型: export type Item = { type: 'text', content: string } | { type: 'link', url: string } 是否可以从类型Item中提取link部分?我的意思是,是否可以定义类型ExtractTypeFrom: type LinkItem = ExtractType
..
我有两个函数可以做相同的事情,唯一的区别是输入类型和返回类型不同.我想知道如何将这些功能“合并"为一个,其中一个想法是使用联合类型,但是我的约束是当输入是联合的一个成员时,返回值必须相同. const getViewStyle = (styles: ViewStyle[]): ViewStyle => { return Object.assign({}, ...styles); };
..
从这三个声明开始: type SharedMsg = SharedAction type Page1Msg = Page1Action type Page2Msg = Page2Action 我有没有办法获得下一个的等价物?像“合并"联合类型的方法一样? type Msg = SharedAction | Page1Action | Page
..
我想将A|B类型作为A|B|C的子类型.可以在Scala中编码吗?如果是,怎么办? 我希望可以在下面进行implicitly[¬¬[IF] Nothing trait Disj[T] { type or[S] = Disj[T with ¬[S]] type a
..