Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Typescript是否在类构造函数中设置接口属性?_Javascript_Typescript_Class - Fatal编程技术网

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