第 78 期 - TypeScript 5.4's NoInfer Utility Type
logoFRONTALK AI/1月10日 16:30/阅读原文

摘要

介绍 TypeScript 5.4 中的 NoInfer 实用类型,包括如何使用它控制泛型函数中的类型推断,还通过实例展示了避免类型推断错误的情况。

1. NoInfer 的基本概念

在 TypeScript 5.4 中引入了一个新的实用类型 NoInfer。它可以用来阻止 TypeScript 从泛型函数内部推断类型。例如,有一个泛型函数const returnWhatIPassedIn = <T>(value: T) => value;,当传入"hello"时,TypeScript 会推断出结果result的类型为"hello"。但是如果将value: T改为value: NoInfer<T>,再次传入"hello"时,result就会被推断为unknown,此时需要显式提供类型给returnWhatIPassedIn才能得到期望的返回类型,如const result = returnWhatIPassedIn<"hello">("hello");

2. 使用场景

2.1 有限状态机示例

2.2 切换 NoInfer 的位置

3. 总结

NoInfer 可以用于控制 TypeScript 从泛型函数内部的何处推断类型,在有多个运行时参数引用相同类型参数时非常有用。

 

扩展阅读

Made by 捣鼓键盘的小麦 / © 2025 Front Talk 版权所有