ハック:タイプスクリプト内のプライベートクラスのアクセス


私たちはプライベートクラスのメンバーにアクセスしてはいけません.しかし、時々、方法は単にまわりにありません.たとえば、単体テスト中に、正しい値をアサートするプライベートメンバーにアクセスできます.またはデバッグ中に、コンソールにプライベートプロパティをログ出力します.
タイプスクリプトには、これをする2つの方法があります.最初のオプションは、オブジェクトをanyにキャストすることです.このオプションの問題は、型の安全性とintellisense自動補完を行うことです.第2のオプションはintentional escape hatchです.これはバグですかこの非常に目的のために開いていたタイプスクリプトで.タイプセーフティと自動補完を維持しながら、ブラケット表記を介してプライベートメンバーへのアクセスを許可します.
class Test {
    public foo: string = "Foo";
    private bar: string = "Bar";
    public constructor() { }
}

const test = new Test();

// cast as any
console.log((test as any).bar)

// intentional escape hatch
console.log(test['bar'])
それをTypeScript Playgroundでチェックしてください.