Typescript 学习之对象类型

今天学习的内容是 Typescript 的对象类型。

在 JS 中创建一个对象,通常使用对象字面量的形式,比如定义一个 person 对象:

const person = {
    
    
    name: '昆吾',
    age: 18
}

之后就可以使用该对象,可以访问对象身上存在的属性,比如 person.name,甚至可以访问不存在的属性,比如 person.xxx ,都不会报错。

而在 Typescript 中,在创建好 person 对象以后,person 的类型就已经确定了,是一个对象字面量类型:

image-20220911160804622

如果访问该类型身上不存在的属性,比如访问 person.xxx,编辑器就会提示报错:

image-20220911160908186

通过这个例子,可以得知,在 TS 中创建一个对象时,TS 就已经为此对象确定好了类型,并且对象成员的类型也确定好了。

对象的类型就是对对象自己的一个描述,使用大括号 {} 表示,并为每个成员声明好类型,称之为 Key To Type键类型对

{
    
    
    name: string;
    age: number;
}

这也是类型推断的一种。
除此之外,还可以显式的手动为一个变量设置类型,还是以上面的为例:

const person: {
    
    name: string, age: number} = {
    
    
    name: '昆吾',
    age: 18
}

对象类型还可以使用 object 或者 {}去表示:

const person: object = {
    
    
   name: '昆吾',
   age: 18
}

const person: {
    
    } = {
    
    
   name: '昆吾',
   age: 18
}

但是它太宽泛了,对于增强类型提示没有帮助,该报错的地方依然会报错。因为对象是键值对的集合,使用 object 去标识,TS 编译器只知道它是一个对象,但并不能知道它实际的内部结构是如何表示的。所以在开发中 object 作为类型,使用的几率不是很多。

object 类型有点像前面学到的 any 类型,都是比较宽泛的一个类型,objectany 的一个子集。在开发中都尽量少使用。

小结

本文介绍了 Typescript 中的对象类型,它是一种键类型对结构。在开发时尽量使用明确的结构来定义对象,才能使用 TS 提供的类型提示的能力。

猜你喜欢

转载自blog.csdn.net/Old_Soldier/article/details/127178151