gpt4 book ai didi

javascript - typescript :比较接口(interface)类型的对象是否等于另一个对象具有相同的接口(interface)类型

转载 作者:行者123 更新时间:2023-11-30 06:21:13 26 4
gpt4 key购买 nike

我有以下界面:

export interface IDateRangeOperation {
getDateRange(): DateRange;
}

并有以下类(class):

export class DefaultRangeItem {
name: String;
operation: IDateRangeOperation;
constructor(name: String, operation: IDateRangeOperation){
this.name = name;
this.operation = operation;

}
isEqual(defaultRangeItem: DefaultRangeItem): Boolean {
return this.name === defaultRangeItem.name;
}
getDateRange(): DateRange {
return this.operation.getDateRange();
}
}

我有几个类实现了 IDateRangeOperation

我想要的是在 isEqual 函数 中比较两个 DefaultRangesItems 的操作对象(在 isEqual 函数与当前 DefaultRangeItem)

最佳答案

正如@jcalz 在评论中所说,这是一个重复的问题,但我会根据 this post 上提供的信息,指出我所做的更改以使其起作用来回答它。 .记住:

Typescript is a typed superset of Javascript that compiles to plain Javascript.

所以,如果在 javascript 中工作,在 typescript 中工作。

回到我的例子,我改变这个:

isEqual(defaultRangeItem: DefaultRangeItem): Boolean {
return this.name === defaultRangeItem.name;
}

对此:

isEqual(defaultRangeItem: DefaultRangeItem): Boolean {
return this.key === defaultRangeItem.key && this.name === defaultRangeItem.name &&
this.operation.constructor === defaultRangeItem.operation.constructor;
}

并且知道 isEqual 函数 还验证操作:IDateRangeOperation; 持有的对象的类型。

重要说明:这仅验证对象 operation 是否是同一类的实例。

关于javascript - typescript :比较接口(interface)类型的对象是否等于另一个对象具有相同的接口(interface)类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52948985/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com