2017-06-30 13 views
0

私はthe documentation for ng-bootstrapを見ていて、one of their examplesがオブジェクトリテラルの定義にカンマを付けていないことに気づいた。 (私はPlunker内のファイルに直接リンクすることはできませんが、それはラインsrc/app.tsの30です。)TypeScriptでは、プロパティ間にカンマのないオブジェクトリテラルを使用できますか?

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

これはPlunkerで遊ぶために私を導いた、そしてそれはあなたがすべてのカンマを削除することができ判明しますオブジェクトの宣言とコードはまだコンパイルされ、実行されます - console.log({a:1 b:2})を追加して、私が意味するものを見てみましょう。

これは正式にすべてのTypeScriptでサポートされていますか、この具体的な例でコードがコンパイルされて実行される方法の成果物ですか?

+0

私のためのsrc/app.tsの30行目はこれです 'declarations:[App、NgbdDropdownManual]'これは単なる配列です。 – toskv

+0

@toskvはい、行末にコンマはありません。 – Duncan

+0

ああ、気づいた..私の答えを確認してください。 :) – toskv

答えて

3

tscを翻訳するときに、句読点の欠落が挿入される可能性があります。コンパイル警告がが期待されていることを伝える発行され、同時に

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

let x = { 
    a: 2 b: 4 
} 

例えば

はにコンパイルされます。

これは動作しているように見えますが、意図しない結果であると思われるので、私はそれに依存しません。

この例は、プレイグラウンドhereで確認できます。

+0

あなたのプレイグラウンドの例リンクが私のためにデフォルトのプレイグラウンドページを読み込みます - 多分あなたのリンク構文を確認してください?とにかく、私はTypeScriptを初めて使っていますが、警告をコンパイラのエラーとして扱える限り、これはあまりにも悪くはありません。ありがとう! – Coderer

+0

リンクを修正しました – toskv

関連する問題