📅  最后修改于: 2023-12-03 15:20:43.549000             🧑  作者: Mango
TypeScript 是一种由微软开发的语言,是 JavaScript 的一个超集,允许你写出更加结构化和可维护的代码。
在 TypeScript 中,对象是指具有属性和方法的实例,可以使用对象字面量或者构造函数来创建。
对象字面量是指使用大括号 {}
包裹属性和值的一种对象创建方式。
const person = {
name: 'Tom',
age: 18,
sayHello: function() {
console.log(`Hello, my name is ${this.name}.`);
}
};
在 TypeScript 中,你可以使用一个 interface 来描述对象的结构,从而提高代码的可读性和可维护性。
interface IPerson {
name: string;
age: number;
sayHello: () => void;
}
const person: IPerson = {
name: 'Tom',
age: 18,
sayHello: function() {
console.log(`Hello, my name is ${this.name}.`);
}
};
使用构造函数创建一个对象,通常使用 class
关键字来定义一个类,然后使用 new
关键字来创建类的实例。
class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
sayHello() {
console.log(`Hello, my name is ${this.name}.`);
}
}
const person = new Person('Tom', 18);
在 TypeScript 中,你可以使用 interface
来定义一个类的结构。
interface IPerson {
name: string;
age: number;
sayHello: () => void;
}
class Person implements IPerson {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
sayHello() {
console.log(`Hello, my name is ${this.name}.`);
}
}
const person = new Person('Tom', 18);
在 TypeScript 中,你可以使用索引签名来定义一个对象可以包含任意属性。
interface IObj {
[key: string]: any;
}
const obj: IObj = {
name: 'Tom',
age: 18,
gender: 'male'
};
在 TypeScript 中,你可以使用 readonly
关键字将一个属性设置为只读属性,只能在创建对象时进行赋值。
interface IPerson {
readonly name: string;
age: number;
sayHello: () => void;
}
const person: IPerson = {
name: 'Tom',
age: 18,
sayHello: function() {
console.log(`Hello, my name is ${this.name}.`);
}
};
person.name = 'Jerry'; // Error: Cannot assign to 'name' because it is a read-only property.
通过 TypeScript,你可以使用 interface 来描述对象的结构,从而提高代码的可读性和可维护性。同时,TypeScript 的类型系统可以帮助你在编译阶段发现代码中的错误,提升了代码的可靠性和可维护性。