面试题答案
一键面试提升可维护性与安全性的方式
- 类型检查与安全性:在TypeScript中,接口定义了对象的形状(shape),包括属性的名称和类型。这使得编译器在编译阶段就能进行严格的类型检查。例如,当函数期望接收特定接口类型的参数时,如果传入的对象不符合接口定义,编译器会报错,避免了运行时因类型不匹配导致的错误,大大提升了代码的安全性。
- 代码一致性与可维护性:接口为代码提供了统一的契约。团队成员在开发过程中遵循接口定义,可以确保不同模块之间交互的一致性。当接口定义发生变化时,编译器会提示所有依赖该接口的地方,便于集中修改,提升了代码的可维护性。
实际开发场景例子
假设开发一个电商系统,有一个处理商品信息的模块。定义一个 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
接口定义,编译器会提示所有使用该接口的地方进行相应调整,提高了代码的可维护性。