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
で生成しています。 似たようなことを書いているブログもあったので貼り付けとく