Angular DI でコンポーネントにインジェクトするときコンストラクターに引数で public or private を入れるのはなぜだろう?しかもどちらか書かないとインジェクトされない。というので数行メモします。
TypeScript で3つのクラス(hogeClass、fugaClass、puyoClass)を作ってみる。
class hogeClass { constructor(private hoge: string) { } } class fugaClass { constructor(public fuga: string) { } } class puyoClass { constructor(puyo: string) { } }
これをビルドすると
var hogeClass = /** @class */ (function () { function hogeClass(hoge) { this.hoge = hoge; } return hogeClass; }()); var fugaClass = /** @class */ (function () { function fugaClass(fuga) { this.fuga = fuga; } return fugaClass; }()); var puyoClass = /** @class */ (function () { function puyoClass(puyo) { } return puyoClass; }());
なるほど。
このコードは
https://www.typescriptlang.org/play/index.html
で生成しています。 似たようなことを書いているブログもあったので貼り付けとく