首页 > 解决方案 > 为什么 typescript generic T any 不起作用?

问题描述

操场演示

差异:

A:

function<T extends { status: number }> () {}

乙:

function<T = any> () {}

不能访问 T的B属性,A只能访问 T 的status

谢谢

标签: typescriptgenerics

解决方案


它完全按照它应该的方式工作。除非你知道它有一个属性,否则你不能访问status一个类型的变量的属性。TTstatus

<T extends { status: number }>意味着不管 的具体值是多少T,它总会有一个属性status

<T = any>意味着T可以是任何东西。例如,您将如何访问statusa的属性boolean?这将导致运行时错误。所以打字稿给你一个编译时错误,以确保你不这样做。


推荐阅读