打字稿多态性

约翰尼

请看下面的代码:

class Greeter {
    greeting: string;
    constructor(message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}

class Ge extends Greeter {
    constructor(message: string) {
        super(message);
    }
    greet() {
        return "walla " + super.greet();
    }
}

let greeter = new Ge("world");

console.log(greeter.greet()); // walla Hello, world
console.log((<Greeter> greeter).greet()); // walla Hello, world

我希望第二个日志能够打印出来Hello, world查看转Javascript码后的代码,我看到的是完全相同的命令,所以这并不奇怪。

真正的问题是,您如何greeter转换为扩展类?

贾斯汀·尼斯纳(Justin Niessner)

您已经greeter将其强制转换为父类。

类中的覆盖方法在强制转换为其父级时不会改变行为。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章