TypeScript的对象类型
什么是 object 类型?
TypeScript 的 object 类型代表所有非原始类型的值。原始类型包括number、string、boolean、bigint、null、symbol和 undefined。当声明一个变量为 object 类型时,只能为其赋值为对象:
// object 类型声明
let student: object;
// object 类型的定义
student = {
id: 1,
name: "Asan",
age: 18,
isStudent: true
};
// 报错,不能赋值为字符串,Type 'string' is not assignable to type 'object'.ts(2322)
student = 'Asan'
TypeScript 如何声明一个有特定属性的对象?
在 TypeScript 中,可以通过以下的语法,明确指定对象的属性及其类型:
// 对象字面量
let student: {
id: number;
name: string;
age: number;
isStudent: boolean;
};
然后,可以通过字面量为该对象的指定的属性赋值:
student = {
id:1,
name:"Asan",
age: 18,
isStudent: true
};
当然,也可以把上面的两部分语法结合起来,像这样:
let student: {
id: number;
name: string;
age: number;
isStudent: boolean;
} = {
id: 1,
name: "Asan",
age: 18,
isStudent: true
};
如果访问对象上不存在的属性会发生什么?
如果尝试访问一个对象上未声明的属性,TypeScript 会在编译时报错:
// Property 'firstName' does not exist on type 'object'.ts(2339)
console.log(student.firstName);
而在 JavaScript 中,这种操作会返回 undefined,不会报错,这也是 TypeScript “Type” 的原因。
object、Object 和 {} 有什么区别?
- object:表示所有非原始类型的值,可以理解为是一组属性和对应的值的集合
- Object:描述所有对象的功能,比如
toString()和valueOf()方法 - {}(空类型):表示没有自有属性的对象,但可以访问通过原型链继承的属性和方法:
let student: {};
// 报错,'firstName' 不存在于类型 '{}' 上
student.firstName = 'Asan';
// 正常,'toString' 来自 Object 原型
console.log(student.toString());
-
如果你觉得我的工作对你有帮助,可以通过分享这篇文字或者关注同名公众号来支持我,你的支持是我持续创作的最大动力:
![image]()
-
转载以及引用请注明原文链接。
-
本博客所有文章除特别声明外,均采用CC 署名-非商业使用-相同方式共享 许可协议。

TypeScript的 object 类型,及其基本语法的使用。

浙公网安备 33010602011771号