问一个泛类型的继承判断问题?

type xin = {age:number,name:string}
type ab = {name:string}
type hd = ab extends xin ? true :false

为毛这里hd是false?
不可以继承吗?

阅读 1.4k
2 个回答

xin extends ab才是true

ts中A extends B?的意思可以理解为A类型的变量是否可以赋值给B类型的变量,或者是访问B类型变量的地方能否替换为A类型变量。
所以你的代码可以这么理解,假设有两个变量let vab: ab = { name: 'a' }; let vxin: xin = { age: 18, name: 'x' };,vab显然不可以赋值给vxin,因为vab不满xin的约束条件,但是vxin满足ab的约束条件,所以xin extends ab是true,vinx可以赋值给vab。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题