【问题标题】:Creating a new instance of a class in typescript在打字稿中创建一个类的新实例
【发布时间】:2017-07-02 12:42:06
【问题描述】:

我正在尝试创建一个具有空值的类的新实例,但我正在努力处理代码。

这是我的类文件代码:

export class MyTimeDefinition {
    RequestCodes: Array<RequestCodes>;
    BalanceCodes: Array<BalanceCodes>;
    ID: number;
    Description: {
        SelectedLanguage: number,
        Values: {
            LanguageID: number,
            ValueID: number,
            Value: string
        }[]
    };
    IsDataLoaded: boolean;
    TypeName: string;
}

export interface RequestCodes {
    ID: number;
    StringValue: string;
}

export interface BalanceCodes {
    ID: number;
    StringValue: string;
}

在我的组件中,我尝试创建一个新的类实例,如下所示:

//Create New MyTime-Definition
public createNewMyTimeDefinition() {
    let newMyTimeDefinition = new models.MyTimeDefinition();
    console.log(newMyTimeDefinition);
}

我的 console.log 的结果是 MyTimeDefinition {} 我怎样才能创建具有类的所有属性而不仅仅是一个空对象的变量 newMyTimeDefinition

【问题讨论】:

    标签: class typescript dependency-injection


    【解决方案1】:

    您必须在MyTimeDefinition 类中创建一个constructor,在该类中向类中的变量添加一些值。
    像这样的:

    export class MyTimeDefinition { 
        ...
        //Some other variable
        constructor(){
            this.mystringvariable = "my string value";
        }
    }
    

    而且,正如您将看到的,当您通过调用构造函数创建一个新类时,您的类的变量将不为空。

    【讨论】:

    • 我像你说的那样在我的类中添加了构造函数,但是现在由于某种原因我收到“无法设置未定义的属性'SelectedLanguage'”,但是根据VS应该定义它。
    • 因为需要先实例化Description对象,然后再尝试访问SelectedLanguage
    猜你喜欢
    • 1970-01-01
    • 2019-12-06
    • 2012-11-07
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    • 2020-11-03
    • 2021-12-29
    • 1970-01-01
    相关资源
    最近更新 更多