Typescriptのプライベートパラメータ 質問する

Typescriptのプライベートパラメータ 質問する

初めて学習しAngular2、取り組んでいます。classesjavascript

パラメータとは何ですかprivate、そしてなぜ単純にできないのですかheroService: HeroService?

constructor(private heroService: HeroService) { }

ベストアンサー1

のように見えるパラメータプロパティ基本的に、コンストラクター パラメーターにアクセス修飾子 (public/private/protected/readonly) を追加すると、そのパラメーターが同じ名前のフィールドに自動的に割り当てられます。

具体的には、これらのドキュメントから:

TypeScriptは、コンストラクタパラメータを同じ名前と値を持つクラスプロパティに変換するための特別な構文を提供します。これらはパラメータプロパティと呼ばれ、コンストラクタ引数の前にpublic、private、protected、readonlyのいずれかの可視性修飾子を付けることで作成されます。結果のフィールドにはこれらの修飾子が付けられます。

したがって、次のものは同等です。

class Foo {
    private bar: string;
    constructor(bar: string) {
        this.bar = bar;
    }
}

class Foo {
    constructor(private bar: string) {}
}

おすすめ記事