我有这个界面:
interface IPoint {
getDist(): string;
getDist(x: number): any;
}
我需要一个类来实现它,但我无法获得在类中实现getDist()方法的正确语法。。
class Point implements IPoint {
// Constructor
constructor (public x: number, public y: number) { }
pointMethod() { }
getDist() {
Math.sqrt(this.x * this.x + this.y * this.y);
}
// Static member
static origin = new Point(0, 0);
}
它说:
类'Point'声明接口'IPoint'但不实现它:类型'Point'和'IPoint'的属性'getDist'的类型不兼容:调用类型'()=
做这件事的正确方法是什么?
谢谢
也可以使用默认值
interface Foo{
next()
next(steps: number)
prev()
prev(steps: number)
}
next(steps: number = 1) {
// ...
}
prev(steps: number = 1) {
// ...
}
这个答案描述了如何在TypeScript中实现方法重载,它不漂亮:
interface IPoint {
getDist(): string;
getDist(x: number): any;
}
class Point implements IPoint {
// Constructor
constructor (public x: number, public y: number) { }
pointMethod() { }
getDist(x?: number) {
if (x && typeof x == "number") {
return 'foo';
} else {
return 'bar';
}
}
}
注意:由于接口中声明的返回类型的特定组合,您只能从getDist
返回字符串。
在类中声明函数时,需要用重载修饰它:
getDist(): string;
getDist(x: number): any;
getDist(x?: number): any {
// your code
}
问题内容: 关于接口和类,这让我感到困扰。 我正在尝试通过名为IPAddressString的类对名为IPAddress的接口进行实施。Ipadress包含四个部分。 我正在编写一个名为mask的方法,该方法用给定的地址屏蔽当前地址。掩码操作是对地址的所有四个部分进行按位“与”操作。您可以通过我编写的名为getOctet的方法来获得所有四个部分。(您可以在下面看到)。 好的,所以我需要掩盖我的
我想定义一些东西,最好在Python中调用“函数扩展”/“函数接口”或“函数类”。我还没有在其他语言中见过类似的构造,但我不擅长LISP之类的函数式语言。如果这更容易做到,考虑以后改用其他语言,比如Julia。 “函数扩展”将是一种形式化的方式来表示绑定函数的几个参数,我们最终得到一个属于特定“函数类”的函数。在我下面的示例中,特定的“函数类”是一个数据转换函数(如),它只有一个参数:扩展了作为绑
实际代码中 funa 里有其他代码,拼数据一起 ajax 请求类的,上面只是简化代码 func 会调用 funa 并且有其他调用 https://www.typescriptlang.org/zh/play?#code/GYVwdgxgLglg9mABKMBDRAKARgLgM5QBOMYA5gJQ5ggC2WApoQFArTxIrrb5EmkDaAXUrU6jIS3BsEycF1wFiZAD6K
Second.CPP 我在表示错误:不允许类型名。那么这个错误的原因是什么呢?我想我还没有完全了解模板的整个机制--我对这个主题非常陌生。
null 我不太确定如何处理我的代码,以下是我得到的: 我只是不知道我应该打什么。我相信我已经完成了第一个重载构造函数,但我对此还是新手。 那么,我应该做些什么来使重载构造函数工作呢? 我对Java和面向对象编程非常陌生。
从Kotlin调用Java代码时,存在SAM转换,因此Java代码如下所示: 可以如下所示: 现在,我正在处理一个Kotlin项目,我想将功能接口定义为事件侦听器: 在SomeClass中,我有一个设置监听器的函数: 当我创建这个类的实例并尝试调用setter函数时,我是这样做的: 我知道静态编程语言有函数类型,因此不支持来自各种站点的SAM转换,例如这个站点。 我读过一些关于函数类型的书,但我以