gpt4 book ai didi

inheritance - 在 TypeScript 中是否有等同于 "sealed"或 "final"的东西?

转载 作者:搜寻专家 更新时间:2023-10-30 20:33:07 25 4
gpt4 key购买 nike

我正在尝试在父类(super class)中实现一种方法,该方法应该可以在子类中使用,但不可更改。考虑一下:

export abstract class BaseClass {
universalBehavior(): void {
doStuff(); // Do some universal stuff the same way in all sub classes
specializedBehavior(); // Delegate specialized stuff to sub classes
}

protected abstract specializedBehavior(): void;
}

我的意图是 BaseClass 的任何子类不仅可以自由省略 universalBehavior() 的实现,甚至不允许提供实现。这在 TypeScript 中(还)不可能吗?当我在我的子类中省略实现时,Intellisense 会提示。我能做的最好的事情就是:

export class SubClass extends BaseClass {
universalBehavior(): void {
super.universalBehavior();
}

specializedBehavior(): void {
// sub class' implementation
}
}

显然这是有问题的,因为我必须确保没有子类通过调用 super.universalBehavior() 以外的任何方式实现 universalBehavior()

最佳答案

不,在撰写本文时还没有。有这样一个关键字的提案仍在考虑中,但可能会或可能永远不会实现。

参见:

关于inheritance - 在 TypeScript 中是否有等同于 "sealed"或 "final"的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42814649/

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