TypeScript中的对象定义

时间:2017-11-29 11:47:48

标签: typescript

我目前在TypeScript应用程序中有以下内容:

interface Data {
    url: string,
    // more stuff
}

(...)

export class something() {
    public data: Data;
}

method(){
    this.data.url = "things";
}

问题是,每次我尝试给data.url一个值时,我都会收到错误消息,说我无法设置undefined的属性url。 我究竟做错了什么?为什么?

提前致谢!

1 个答案:

答案 0 :(得分:0)

1)类声明语法错误,应该是

export class something { 
}

而不是

export class something() { 
}

2)method在类之外定义,它应该在类

之内

3)this.data未实例化,它是undefined,并且您正在尝试访问url变量的undefined属性,因此出错。

interface Data {
    url: string,
    // more stuff
}

(...)

export class something {
    public data: Data;
    method(){
        this.data = {
           url: "things",
           // more stuff
        }
    }
}

如果您想从课程外部访问method,则需要实例化课程something

method() {
    let obj = new something();
    obj.data = {
        url: "things",
        // more stuff
    }
}