【发布时间】:2023-02-21 19:19:06
【问题描述】:
作为作业项目的一部分,我正在使用 Typescript 为学校构建 Linq 框架。关于 Select 方法,我遇到了问题。我向 Select 传递了一个属性数组,但问题是 Typescript 允许数组中有重复值。在 Typescript 或 Javascript 中有没有一种方法可以只包含唯一值的数组?
现在 Select 方法看起来像这样:
在界面中:
Select: <K extends keyof T>(this: Table<T, U>, ...properties: K[]) => Table<Omit<T, K>, Pick<T, K> & U>
实施:
Select: function <K extends keyof T>(this: Table<T, U>, ...properties: K[]): Table<Omit<T, K>, Pick<T, K> & U> {
let selection = this.data.First.map(entry => pickMany(entry, properties))
let result = this.data.map(
first => first.map(entry => omitMany(entry, properties))
,
second => merge_list_types(second.zip(selection))
)
return Table(result)
}
现在可以说:
customers.Select("name", "name", "age")
正如预期的那样,上面的代码会给我一个类型错误,因为已经选择了'name'。
【问题讨论】:
-
使用不允许重复的集合类型
-
Java 和 Javascript 是两个不同的东西。请更正您的标签。
-
我有说 Java 吗?对不起,我的意思是 Javascript 感谢您的更正
标签: arrays typescript