如果在 TypeScript 中遇到带有奇怪对象类型作为参数的函数签名而感到困惑,可以尝试使用接口或类型别名来定义对象类型。例如,在下面的示例中,我们将一个名为 Person 的对象类型定义为一个具有 firstName 和 lastName 属性的对象。然后,我们定义一个名为 printFullName 的函数,该函数接受一个 Person 对象作为参数,并输出该对象的全名。这样,在函数签名中,我们只需使用 Person 型参数即可清晰地明确输入参数的类型。
interface Person {
firstName: string;
lastName: string;
}
function printFullName(person: Person) {
console.log(`${person.firstName} ${person.lastName}`);
}
const johnDoe = { firstName: "John", middleName: "Smith", lastName: "Doe" };
printFullName(johnDoe); // 会出现错误提示,因为 johnDoe 对象不符合 Person 类型定义中的要求
在上面的示例中,如果我们将一个属性名为 middleName 的对象传递给 printFullName 函数作为参数,TypeScript 编译器将会发出错误提示,因为该对象不符合我们之前定义的 Person 类型。这样,我们便可以使用接口或类型别名来定义带有奇怪对象类型的参数,从而使我们的 TypeScript 代码更加具有可读性和明确性。
上一篇:不理解代码中num的用法。