我正在创建一个处理来自数据库的对象的函数。我有两种不同的数据结构,其中相同的属性具有不同的名称。我无法改变它,所以我必须在 JavaScript 中处理它。
这些对象还有其他区别,但这对这个函数并不重要。
我想对两种不同类型的对象使用相同的功能。这是演示我的问题的示例代码:
interface TypeA {
itemName: string;
}
interface TypeB {
itemTitle: string;
}
function getItemName(item: TypeA | TypeB): string {
let name = '';
if (item.hasOwnProperty('itemName')) {
name = item.itemName;
} else {
name = item.itemTitle;
}
return name;
}
当然,这段代码运行。但是 IDE 将行name = item.itemName;
和错误都标记name = item.itemTitle;
为错误(“类型上不存在属性”),因为这两种类型都没有两种属性。
那么,执行此操作的正确打字稿方式是什么?