我有一些类的crud API服务类,我想扩展它,但矛几个属性的考试,这是我的类
class Parent {
public propertyToKeep: any;
public propertyToDelete: any;
constructor() { }
}
这是子类
class Child extends Parent {
constructor() {
super();
}
}
另一个我不想看到和访问的文件
export class comeComponent {
constructor(private child: Child) {
this.child.propertyToKeep // work
this.child.propertyToDelete // error and I can't even see it
}
}
4条答案
按热度按时间ct2axkht1#
我刚刚遇到了与您相同的使用情形,我是这样做的:
那么你可以这样使用它:
As you can see child only has one property now(它也适用于方法)。
@nestjs/swagger的包有一些很好的助手,如果你正在处理NestJS API的话。他们的实现更复杂,所以我猜他们保留了其他东西,比如他们自己的属性装饰器(我对Typescript很陌生,所以可能我错过了他们所做的一切的要点)。
附言:法国人第一次尝试用不太流利的英语回答,所以请友好一点。
zaqlnxep2#
下面是一种方法:
laximzn53#
您需要使用
Object.defineProperty
函数,在描述符中进行限制,enumerabletofalse和getter
,setter
具有特定条件,以下是一个完整的示例:flvlnr444#
这是不可能的。如果你在父类中声明了一个属性,你就不能限制它在子类中的可见性。
从模型设计的Angular 来看,这也是没有意义的。您在这里暴露的问题表明您的类层次结构没有设计好,您必须重新思考和重新设计它。