MST

星途 面试题库

面试题:TypeScript 中如何通过接口提升代码可维护性与安全性

请阐述在 TypeScript 里接口(interface)是怎样提升代码的可维护性与安全性的,并举一个实际开发场景的例子说明。
35.1万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

提升可维护性与安全性的方式

  1. 类型检查与安全性:在TypeScript中,接口定义了对象的形状(shape),包括属性的名称和类型。这使得编译器在编译阶段就能进行严格的类型检查。例如,当函数期望接收特定接口类型的参数时,如果传入的对象不符合接口定义,编译器会报错,避免了运行时因类型不匹配导致的错误,大大提升了代码的安全性。
  2. 代码一致性与可维护性:接口为代码提供了统一的契约。团队成员在开发过程中遵循接口定义,可以确保不同模块之间交互的一致性。当接口定义发生变化时,编译器会提示所有依赖该接口的地方,便于集中修改,提升了代码的可维护性。

实际开发场景例子

假设开发一个电商系统,有一个处理商品信息的模块。定义一个 Product 接口来描述商品对象的结构:

interface Product {
  id: number;
  name: string;
  price: number;
  description: string;
}

function displayProduct(product: Product) {
  console.log(`Name: ${product.name}, Price: ${product.price}`);
}

// 创建一个符合Product接口的商品对象
const myProduct: Product = {
  id: 1,
  name: "Sample Product",
  price: 19.99,
  description: "This is a sample product"
};

displayProduct(myProduct);

// 以下代码如果取消注释,编译器会报错,因为不符合Product接口
// const invalidProduct = {
//   name: "Invalid Product",
//   price: 29.99
// };
// displayProduct(invalidProduct);

在上述例子中,Product 接口明确了商品对象应具备的属性和类型。displayProduct 函数依赖于 Product 接口,这样在传递参数时能确保参数的正确性,提升了代码的安全性。同时,如果后续需要修改商品对象的结构,比如添加一个新属性,只需修改 Product 接口定义,编译器会提示所有使用该接口的地方进行相应调整,提高了代码的可维护性。