typescript - 为什么 typescript generic T any 不起作用?
问题描述
操场演示
差异:
A:
function<T extends { status: number }> () {}
乙:
function<T = any> () {}
不能访问 T的B
属性,A
只能访问 T 的status
。
谢谢
解决方案
它完全按照它应该的方式工作。除非你知道它有一个属性,否则你不能访问status
一个类型的变量的属性。T
T
status
<T extends { status: number }>
意味着不管 的具体值是多少T
,它总会有一个属性status
。
<T = any>
意味着T
可以是任何东西。例如,您将如何访问status
a的属性boolean
?这将导致运行时错误。所以打字稿给你一个编译时错误,以确保你不这样做。
推荐阅读
- dart - 未在静态属性上调用构造函数
- ios - UIScrollView 不工作/错误宽度和高度
- c++ - C6001:未初始化存储正在使用,虽然我这样做了
- sql - 将 OFFSET 和 FETCH 与 ORDER BY 子句和 CASE 子句一起使用
- c++ - cppitertools:如何结合 iter::enumerate 和 iter::filter?
- c# - 如何在表单之间发送 ENUM?
- svg - 如何在 SVG 的形状内添加点击事件?
- c - 以 EOF 结尾的 fgets 循环跳过下一个 fgets
- xcode - 基于 MacOS Store 的应用程序是否有 api 功能可以在特定时间自行启动
- java - 安卓到安卓数据传输使用usb