我有以下源代码,我认为以下语法的目的是/可能是
type CatalogCategoryWithKey = CatalogCategory & { key: string };
任何人都可以链接一些信息,程序员什么时候以及为什么需要这种语法?
答案 0 :(得分:4)
程序员显然需要一种具有CatalogCategory
所有功能的类型,以及具有key
类型的附加属性string
。在TypeScript中,它称为https://github.com/google/ExoPlayer/issues/2438。
这是一个稍作设计的例子:
interface CatalogCategory {
id: number;
name: string;
}
type CatalogCategoryWithKey = CatalogCategory & { key: string };
function example(param: CatalogCategoryWithKey) {
const { id, name, key } = param;
console.log(`${id}, ${name}, ${key}`);
}
const cat: CatalogCategory = { id: 42, name: "Answer" };
example({ ...cat, key: "something" });
答案 1 :(得分:0)
此表达式将2种类型“合并”为一种。在类型上使用时,&
运算符的行为或多或少像+
对字符串的行为。
或者,也可以使用一个新的界面,只是更加冗长:
interface CatalogCategoryWithKey extends CatalogCategory {
key: string;
}