Shion のもくログ(旧: Shion の技術メモ)

使った技術のメモや、うまくいかなかった事とかを綴ります

PR

【TypeScript】Class 宣言の挙動差異

TypeScript でconstructor を使ったクラス宣言と、使わない場合でキーの数が違うので注意が必要かもです。

実装例(TypeScript)

class ClassA {
    prop1: string
    prop2: string
}
console.log(new ClassA())

class ClassB {
    constructor(
        public prop1?: string,
        public prop2?: string,
    ) {
    }
}
console.log(new ClassB())

実行結果

TypeScript のプレイグラウンド での実行結果です。

VM30:4 ClassA {}__proto__: Object
VM30:11 ClassB {prop1: undefined, prop2: undefined}
PR