Javascript Typescript是否在类构造函数中设置接口属性?
在中的“类类型”下,给出了以下示例:Javascript Typescript是否在类构造函数中设置接口属性?,javascript,typescript,class,Javascript,Typescript,Class,在中的“类类型”下,给出了以下示例: interface ClockInterface { currentTime: Date; } class Clock implements ClockInterface { currentTime: Date = new Date(); constructor(h: number, m: number) { } } “class Clock…”下面以“currentTime:…”开头的那一行似乎暗示,如果我执行var somet
interface ClockInterface {
currentTime: Date;
}
class Clock implements ClockInterface {
currentTime: Date = new Date();
constructor(h: number, m: number) { }
}
“class Clock…”下面以“currentTime:…”开头的那一行似乎暗示,如果我执行var something=new Clock()
,我的something
变量将具有可访问的currentTime
属性,即something.currentTime
这让我很困惑,因为下面的一行:
实例属性必须在类方法内部定义
他们举的例子是:
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
}
这意味着以下代码将无效:
class Rectangle {
height: 23,
width: 45,
constructor(height, width) {
}
}
我的困惑:Typescript文档中的示例代码没有在构造函数中分配currentTime。他们的示例中是否缺少这一步,或者他们的语法是否暗示“顺便问一下,直接在类上定义的属性在构造函数中神奇地给定了一个值?”如果是这样,如果您自己“手动”在构造函数中设置给定值,会发生什么情况
运行构造函数,然后连接指定默认值的所有属性,以便在调用构造函数后指定currentTime
这允许使用如下语法
class MyClass {
myProperty = this.myService.serviceProperty;
constructor(private myService: Myservice) {}
}
将构造函数参数标记为private、protected或public会自动将它们指定为类的属性,而无需这样做
this.property = paramater
在构造函数中。TypeScript语法与JavaScript不同,但一旦你习惯了它,它就棒极了。TypeScript语法!==JavaScript-sytnax。所以比较文档肯定会让人困惑。我同意,但我想我可以改写这个问题“这个typescript语法在Javascript术语中意味着什么。”你认为这是一个更好的问题吗?当然-那么我会说,当typescript被转换回Javascript时,Javascript构造函数就被编写出来了。甚至没有使用JavaScript类关键字。如果是这样,则传输的JavaScript必须看起来与MDN中的示例完全相同。含义:在传输的Typescript中,
currentTime
变量肯定是在构造函数中设置的。Typescript通常在第3阶段或更高阶段设置ECMAScript。是其中的一部分,可能有一天会进入ES20XX。所以希望这最终是有效的JavaScript语法(减去类型注释)。
this.property = paramater