typescript - 从函数回调推断泛型类型参数
问题描述
给定一个 function ,可以正确推断出foo
类型参数,如下例所示:T
string
declare function foo<T>(callback: (bar: T) => void): void
// foo<string>(callback: (bar: string) => void): void
// ---> T is inferred string here
foo((bar: string) => { })
但是,以下示例显示T
被推断为unknown
. 所以我的问题是:为什么类型不解析为T
嵌套在回调的对象类型中?
declare function foo2<T>(callback: (bar: { a: T }) => void): void
// foo2<unknown>(callback: (bar: { a: unknown; }) => void): void
// ---> T is inferred unknown here
foo2(({ a: string }) => { })
解决方案
我想这就是你要找的
declare function foo<T>(callback: (bar: T) => void): void
foo((bar: string) => { })
declare function foo2<T>(callback: (bar: T) => void): void
foo2((a: { a: string }) => {} )
推荐阅读
- c++ - Boost.Intrusive Containers - 不同大小的元素
- azure - 使用 Azure DevOps Services REST API 的仪表板
- node.js - 我应该使用 npm install 还是 npm update 来更新我的代码?
- python - 具有不等组的 Pandas 条形图
- reactjs - 在新组件中传递点击事件的道具
- c# - 使用进度条调用 WPF 调度程序
- c# - C# 在 switch 或其他方式中更改变量类型以移动它
- jakarta-ee - Java EE - 学习资料
- ffmpeg - ffmpeg 创建一个 mp4 流,导致 Firefox 出错
- sql - 如何编写这个 SQL 查询,我想以最简单的方式基于对多个值的排序来提取一个子集?