typescript - 当我不在打字稿中使用泛型时,为什么我会丢失信息?
问题描述
我有一些关于TypeScript's Generics
.
- 泛型在 TypeScript 中是如何工作的?
文档说我们实际上正在丢失有关函数返回时该类型是什么的信息,但怎么会这样呢?它使用以下代码:
function identity(arg: any): any { return arg; }
我还能做
generic
什么any
?
解决方案
文档说我们实际上正在丢失有关函数返回时该类型是什么的信息,但怎么会这样呢?
此函数会丢失有关参数的信息:
function identity(arg: any): any {
return arg;
}
const foo = identity(123); // typeof foo == `any`
以下函数(使用泛型)约束函数的返回类型以匹配输入类型。这将参数的类型保留(并流动)到返回类型:
function identity<T>(arg: T): T {
return arg;
}
const foo = identity(123); // typeof foo == `number`
推荐阅读
- java - nodejs和kotlin中的SHA256不同哈希
- ssl - 如果端口 443,flask redirect() 会给出 400 Bad Request
- json - Microsoft Graph 团队 API
- json - Symfony 表单 select2 ajax 实体
- node.js - 节点进程和跨多个节点的复制
- docker - Docker 从 Windows 上的 tar 推送 Linux 映像
- excel - Excel,通过从上一个表中复制数据来添加或删除
- matlab - 将 Newton Raphson 和 Gauss Seidel 用于非线性系统
- r - 如何根据 R 中的共同名称组合数据框?
- mysql - 如何从MYSQL中的其他列运行减法