繁体   English   中英

TypeScript:使用泛型和联合类型

TypeScript: use of generic and union types

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有使用函数重载的代码,例如:

function f0(v: Object): void { }

function f1(a: number, b: number): void;
function f1(a: string, b: string): void;
function f1(a: any, b: any): void {
    f0(a); // OK
}

我想使用联合类型进行转换,但出现错误:

function f1<T extends number | string>(a: T, b: T): void {
    f0(a); // Error: Argument of type 'T' is not assignable to parameter of type 'Object'.
}

知道以下是可以的,这是怎么回事:

function f2(v: number | string) {
    f0(v);
}
function f3<T extends number>(v: T) {
    f0(v);
}
function f4<T extends string>(v: T) {
    f0(v);
}
1 个回复

我终于问了MS,这似乎是一个错误: https : //github.com/Microsoft/TypeScript/issues/2576

1 如何使用泛型缩小 TypeScript 联合类型

我有一个更新状态的泛型函数(用例是动态处理 React 中表的更新),并使用泛型来确保调用该函数是类型安全的,但我不明白为什么 TypeScript 无法编译。 在函数本身中,Typescript 似乎没有使用所有可用信息来缩小类型,而是认为我仍在使用完整的联合。 它清楚地知道足够的参数来判断函数 ...

2 TypeScript泛型和联合函数类型

我想创建一个记录类型,该记录类型允许我分配一个字符串键,但可以分配不同的函数类型。 到目前为止,我已经尝试了一些不同的方法,但是编译器我还是不同意。 这是我到目前为止的代码。 将参数传递给myRecords.b和myRecords.c时,编译器给我以下错误 我不太确定它要告诉我什么。 对我来 ...

7 如何使TypeScript通过联合值类型找出泛型

我不确定问题标题是否有意义,但这就是我对自己想做的事情的理解。 如果有更好的描述,请随时对其进行编辑。 我正在为在discord.js机器人中使用的游戏控制器键入配置器。 这个想法是,每个游戏都需要实现一个类型为ConfiguratorConfig&lt;T extends SessionConf ...

8 类型推断如何与 TypeScript 中的联合类型(+条件类型和泛型)一起使用?

我正在用 Angular 开发一个游戏,并试图将演示与游戏逻辑分离。 为了实现这一点,我构建了一个单独的UiController服务来处理用户交互和演示。 每当需要显示某些内容或需要用户操作时,与游戏逻辑相关的服务都会向UiController发出请求。 为了尽可能巧妙地实现这一点,我试图抽象出接 ...

9 使用 TypeScript 和 React 联合类型

我想要一个组件根据给定的特定属性的值接受不同的 props。 类似于以下内容。 问题是,无法弄清楚如何正确地经历这个。 我的意思是,似乎条件没有被正确解析或解释。 如果您想仔细查看该问题,请参阅此 StackBlitz 。 ...

10 如何正确使用 TypeScript 联合类型?

我在使用基本联合类型时遇到问题,感谢您的帮助! 构建一个聊天应用程序,其中传入的消息可以具有不同类型的有效负载。 所以我创建了一些有效负载类型,例如: 为了清楚起见,将它们全部绑定在联合类型中,使用| 然后最终的 Message 将其用作有效负载。 但是在尝试使用时出现此错误 代码在 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM