gpt4 book ai didi

typescript - 防止子类中的字段重复

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

class Parent {
// how can we decorate this field to
// prevent duplication in the child?
readonly name: string;
}

class Child extends Parent {
readonly name: string;
}

我想在这种情况下导致编译器错误。

编辑

这是用babel-jest运行代码时出现的场景。

class Parent {
readonly name: string;
constructor() {
this.name = 'foo';
}
}

class Child extends Parent {
readonly name: string;
constructor() {
super();
}
}

const child = new Child();
document.writeln(child.name); // undefined

最佳答案

没有这样的解决方案(也不应该?),可能是因为它与 OOP 原则相矛盾,例如 open-closed principle .

虽然有一个解决方法(一如既往地权衡取舍)。

将属性设为私有(private)

class Parent {
private name: string = '';
}

这样子类中的属性会导致编译错误“类型具有私有(private)属性的单独声明”

关于typescript - 防止子类中的字段重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53347197/

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