我有一个配置类:
export class Config {
color = 'blue'
type = 'ball';
}
我希望在另一个类中使用该配置,如下所示:
export class Game {
private config;
color;
constructor(config: Config) {
this.config = config;
this.color = this.config.color;
}
}
现在,当我创建new Game(config)
的实例时,配置对象会显示在Game
类上,例如Game.config.blue
。
有没有办法隐藏该属性,但仍然使用配置变量?
答案 0 :(得分:0)
有没有办法隐藏该属性,但仍然使用配置变量
this
上的所有属性都将在运行时可用。但是,使用private
会阻止您使用TypeScript中的 。
答案 1 :(得分:0)
使用private
就足够了,因为TypeScript不允许您从课堂外访问它们。但是,如果您 真的 需要强制执行JavaScript的样式隐私,那么您可以这样做:
class Game {
public color;
public getConfig;
constructor(config: Config) {
var config = config; // <--Private
this.color = config.color;
// If you need an accessor...
this.getConfig = function() {
return config;
};
}
}
var baseball = new Game({color: 'blue', type: 'ball'});
console.log(baseball.config); // undefined
console.log(baseball.getConfig()); // {color: 'blue', type: 'ball'}