老师,Object类型不能表示所有类型的父类吧

来源:8-5 【 TS 泛型类和object区别】object 为什么不能替代类上的泛型的3个原因?

慕侠8534226

2021-10-19

如下图,把null和undefined赋给Object类型的变量就报错了
图片描述
图片描述

写回答

1回答

keviny79

2021-10-19

class Customer {

  custnamestring

  agenumber

}

interface Animal {

  namestring

}


// 常见对象的值

// 接受类对象

let custobject = new Customer();

// 接受接口类型的对象

let animalAnimal = { name: "燕子" }

// 接受普通对象

let objobject = {}


// null 和 undefined 只能传递给 unknown 和 any 类型

let str1unknown = null

let str2any = undefined

0
2
keviny79
回复
慕侠8534226
1. 首先要知道 let str:String="abc" 是可以的,而大写的 Object 类型 是 从 js 顺延 过来的,当我们 let obj:Object="abc" TS 会解析"abc"是 String 类型的 "abc",如下: let obj: Object = "abc" 会被解析成下面 let objSame: Object = new String("abc") 【类似Java的装箱】 2. js 中console.log(String.prototype.__proto__ === Object.prototype) 是返回 true 3. 一个父类的Object 接受一个子类的字符串对象自然是可以的
2021-10-20
共2条回复

晋级TypeScript高手,成为抢手的前端开发人才

轻松驾驭 TypeScript 高级用法, 突破前端成长瓶颈

871 学习 · 425 问题

查看课程