采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
如下图,把null和undefined赋给Object类型的变量就报错了
class Customer {
custname: string
age: number
}
interface Animal {
name: string
// 常见对象的值
// 接受类对象
let cust: object = new Customer();
// 接受接口类型的对象
let animal: Animal = { name: "燕子" }
// 接受普通对象
let obj: object = {}
// null 和 undefined 只能传递给 unknown 和 any 类型
let str1: unknown = null
let str2: any = undefined
老师,我可能没说清楚,我想说的是开头大写的Object,不是object。你在视频里面说了开头大写的Object,是所有类的父类,能当作any来用。我试了下,类型为Object的变量是可以赋值为对象,也可以赋值为字符串和数字的,但是不能赋值为null和undefined,赋值为对象很好理解,可是赋值为字符串和数字,有点难以理解
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 接受一个子类的字符串对象自然是可以的
登录后可查看更多问答,登录/注册
轻松驾驭 TypeScript 高级用法, 突破前端成长瓶颈
1.2k 15
907 12
1.0k 11
946 11
698 10