📜  类型接口的 typescript 对象 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:11:33.920000             🧑  作者: Mango

类型接口的 TypeScript 对象

TypeScript 是一种强类型的编程语言,它在 JavaScript 的基础上增加了类型系统。在 TypeScript 中,我们可以使用接口来定义对象的类型。

什么是接口?

接口定义了一个对象应该具有的属性和方法。接口只是一个约定,它不会转换代码或进行运行时检查。当我们使用 TypeScript 来编写代码时,我们可以使用接口来帮助我们检查代码中的类型错误。

下面是一个简单的接口示例:

interface Person {
  name: string;
  age: number;
  sayHello: () => void;
}

这个接口定义了一个 Person 对象应该具有的三个属性:name、age 和 sayHello 方法。name 是一个字符串,age 是一个数字,sayHello 方法不接受任何参数返回 undefined。

如何使用接口?

我们可以使用接口来定义一个对象的类型,并强制它必须具有这些属性和方法。只要一个对象具有与接口相同的属性和方法,它就符合该接口的定义。

下面是一个使用 Person 接口的例子:

const person: Person = {
  name: "张三",
  age: 30,
  sayHello: () => console.log("你好")
};

这个例子中,我们定义了一个 person 对象,它符合 Person 接口的定义:name 是一个字符串,age 是一个数字,sayHello 方法不返回任何东西。

如果我们尝试在 person 上添加一个名为 height 的属性,TypeScript 就会发出一个编译时错误:

person.height = 180; // Type '{ name: string; age: number; sayHello: () => void; }' 没有属性 'height',但是类型 '{ name: string; age: number; sayHello: () => void; height: number; }' 的表达式类型却具有该属性。
接口继承

在 TypeScript 中,接口可以继承其他接口。这可以帮助我们更好地组织代码并使其更易于维护。

下面是一个继承 Person 接口的例子:

interface Student extends Person {
  grade: string;
}

const student: Student = {
  name: "李四",
  age: 20,
  grade: "大一",
  sayHello: () => console.log("你好")
};

这个例子中,我们定义了一个 Student 接口,它继承了 Person 接口并添加了一个 grade 属性。我们还定义了一个 student 对象,它符合 Student 接口的定义。

总结

在 TypeScript 中,接口是定义对象类型的强有力工具。它可以帮助我们避免在编译时发现类型错误,并使代码更易于维护。我们可以将接口视为一种约定,并在代码中使用它们来帮助我们组织和管理对象的类型。