我定义了以下类型:
export type A {
id: string,
name: string
}
export const data: A[] = [
{ id: 1, name: 'Foo' },
{ id: 2, name: 'Bar' },
...
]
每当我需要访问数组中的一个对象时,.find
方法就派上用场了:
const id = ...; // get the ID
data.find((entry) => entry.id === id)).name
...
data.find((entry) => entry.name === name)).name
由于相同的搜索发生在代码的不同位置,我正在寻找一种方法来扩展data
对象并添加自定义函数,例如:
findById(id: number)
findByName(name: string)
- ...
我应该调用函数来获取相应的数组条目:
...
data.findById(1).name;
...
data.findByName('Foo').id;
有没有一种方法可以在typescript中扩展对象,而不必扩展原生的Object
?
1条答案
按热度按时间z31licg01#
您可以使用
Object.assign()
为数组分配额外的方法。Array.find
可以返回undefined,所以它会被传递。不返回undefined的另一种选择是,你可以抛出一个异常,但这是你需要决定的。例如。
TSPlayground