我已经声明了接口:
interface IMenu {
name: string;
url: string;
}
实现这种接口的类:
class Menu implements IMenu {
public name;
public url;
}
例如,接口中的属性始终是公共的,这意味着实现该接口的类必须包含公共属性。是否可以将它们设置为受保护或私有?
答案 0 :(得分:1)
没有办法做到这一点。接口的实现必须是公共的(某些语言允许一些隐藏,例如带有显式接口实现的C#,但仍然可以从类外部访问实现的属性)。
答案 1 :(得分:1)
interface IMenu {
name: string;
url: string;
}
class Menu implements IMenu {
private _name: string;
private _url: string;
constructor() {
_name = "name";
_url = "url";
}
get name(){
// your implementation to expose name
}
set name(value){
// your implementation to set name
}
}
您可以在类的“接口私有” /“受保护”中为公共变量定义Getter和Setter。