导入和使用没有它作为当前类的对象的类

时间:2016-06-13 11:13:37

标签: typescript

我有一个配置类:

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

有没有办法隐藏该属性,但仍然使用配置变量?

2 个答案:

答案 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'}