在typescript中定义类属性类型?

时间:2017-08-10 03:39:32

标签: typescript ecmascript-6 es6-class

我在打字稿中使用ES6类,内容如下:

class Camera {
    constructor(ip) {
        this.ip = ip;
    }
}

我收回了这个错误,虽然它似乎仍然在编译

  

“相机”类型中不存在“IP”属性。

如果我定义类型:

this.ip: string = ip;

我回来了:

  

';'预期

我应该如何格式化类以消除这两个错误?

2 个答案:

答案 0 :(得分:1)

首先在类上声明属性:

class Camera {
    ip;
    constructor(ip) {
        this.ip = ip;
    }
}

或者在构造函数参数(首选方法)上声明它,只需在参数中添加一个访问修饰符以表明它是一个属性:

class Camera {
    constructor(public ip) {
        // note no explicit assignment
    }
}

答案 1 :(得分:0)

您尝试访问属性“ip”而不在类本身中定义它。 当你调用Camera类并且它搜索ip属性时会调用constructer(ip){}。因为你没有在类中定义它会给出错误

用这种方式。祝福。

class Camera {
 private ip: string;  // declare your variable first with the type

  constructor(ip) {
    this.ip = ip;
  }
}