在打字稿中定义类属性类型?

Phi*_*ide 3 typescript ecmascript-6 es6-class

我在打字稿中使用 ES6 类,如下所示:

class Camera {
    constructor(ip) {
        this.ip = ip;
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误,尽管它似乎仍然可以编译

“相机”类型上不存在属性“ip”。

如果我定义类型:

this.ip: string = ip;
Run Code Online (Sandbox Code Playgroud)

我回来了:

';' 预期的。

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

Jef*_*ado 6

首先在类上声明属性:

class Camera {
    ip: string;
    constructor(ip: string) {
        this.ip = ip;
    }
}
Run Code Online (Sandbox Code Playgroud)

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

class Camera {
    constructor(public ip: string) {
        // note no explicit assignment
    }
}
Run Code Online (Sandbox Code Playgroud)