gpt4 book ai didi

typescript - 如何将 `typeof this` 设置为实例函数参数的类型?

转载 作者:搜寻专家 更新时间:2023-10-30 21:08:13 29 4
gpt4 key购买 nike

TL;DR:是否有可能以自动采用与 this 相同类型的方式声明实例方法参数? ?


我正在尝试定义一个 Comparable界面。天真的定义是这样的:

interface Comparable<T> {
equals(operand: T): boolean;
}

class Thingy implements Comparable<Thingy> {
equals(operand: Thingy): boolean {
// implementation
}
}

但是,很明显,某个类的实例可能会与同一类的另一个实例进行比较。因此 Comparable<T> 中的类型参数将始终重复类标识符。

我想知道,有没有办法定义Comparable接口(interface),以便它自动设置 operandthis 属于同一类型?

This is到目前为止我已经尝试过什么

最佳答案

this 可以用作类型,我想这就是您要找的:

interface Comparable {
equals(operand: this): boolean;
}

class Thingy implements Comparable {
constructor(
public value: number
) { }

equals(operand: this ) {
return this.value === operand.value;
}
}

关于typescript - 如何将 `typeof this` 设置为实例函数参数的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49954983/

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