【问题标题】:Unable to setup property in constructor无法在构造函数中设置属性
【发布时间】:2014-01-24 16:41:13
【问题描述】:

鉴于以下打字稿:

class Tester{
    constructor(data){      
        this.Data = data;
    }
}

生成以下 Javascript:

var Tester = (function () {
    function Tester(data) {
        this.Data = data;
    }
    return Tester;
})();

当生成的 Javascript 看起来有效(并且有效)时,Typescript 是否无效?

Typescript Playground Version

【问题讨论】:

    标签: javascript typescript


    【解决方案1】:

    将您的“数据”成员添加到您的班级:

    class Tester {
        public Data: string;
    
        constructor(data) {
            this.Data = data;
        }
    
    }
    

    更新

    有一种更短的方式来定义类成员:

    class Tester {
        constructor(private data: string) {
             // this constructor signature defines a private member for the class 
             // and initializes it upon the constructor being called with a parameter.
        }
    
        getData(): string {
             return this.data;
        }
    }
    

    http://www.typescriptlang.org/Playground/#src=%0A%0Aclass%20Tester%7B%0A%09%0A%09constructor%28data%29%7B%0A%09%09%0A%09%09this.Data%20%3D%20data%3B%0A%09%7D%0A%09%0A%7D

    【讨论】:

    • 谢谢,很快就知道了。一开始似乎有点奇怪。
    • 它是强类型 OOP :P
    • 如果要在构造函数中指定公共属性,可以这样做:goo.gl/xv0gBP
    • ...您甚至可以这样定义私有成员!我将更新我的问题以反映更短的方法...
    猜你喜欢
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2015-12-08
    相关资源
    最近更新 更多