TypeScript是否允许在属性之间没有逗号的对象文字?

时间:2017-06-30 11:02:10

标签: typescript plunker

我正在查看the documentation for ng-bootstrap并注意到one of their examples在对象 - 文字定义中省略了逗号。 (我无法直接链接到Plunker中的文件,但它是src/app.ts的第30行。)

@NgModule({
  imports: [BrowserModule, FormsModule, ReactiveFormsModule, JsonpModule, NgbModule.forRoot()], 
  declarations: [App, NgbdDropdownManual]
  bootstrap: [App]
}) 
export class AppModule {}

这导致我玩Plunker,结果你可以删除对象声明中的所有逗号,代码仍然编译并运行 - 尝试添加console.log({a:1 b:2})以查看我的意思。 / p>

这在所有TypeScript中是否得到正式支持,还是在这个特定示例中编译和运行代码的方式的工件?

1 个答案:

答案 0 :(得分:3)

这很可能是因为当转换tsc时会插入缺少的标点符号。

例如

let x = {
  a: 2 b: 4
}

编译为:

var x = {
   a: 2, b: 4
};

同时发出编辑警告,告诉您是预期的。

虽然这似乎有效,但我不会依赖它,因为它似乎只是意外后果。

您可以在游乐场here中看到此示例。