1. ホーム
  2. javascript

[解決済み] TypeScriptでオブジェクトがインターフェイスを実装しているかどうかを実行時にチェックする

2023-01-27 06:03:36

質問

実行時にJSON設定ファイルをロードし、その期待される構造を定義するためにインターフェイスを使用します。

interface EngineConfig {
    pathplanner?: PathPlannerConfig;
    debug?: DebugConfig;
    ...
}

interface PathPlannerConfig {
    nbMaxIter?: number;
    nbIterPerChunk?: number;
    heuristic?: string;
}

interface DebugConfig {
    logLevel?: number;
}

...

これでオートコンプリートなどが使えるので、各種プロパティにアクセスするのに便利ですね。

質問です。 は、私がロードするファイルの正しさをチェックするためにこの宣言を使用する方法がありますか? つまり、私は予期しないプロパティを持っていないこと?

どのように解決するのですか?

<ブロッククオート

いいえ。

現在、型は開発時とコンパイル時にのみ使用されます。 型情報はいかなる方法でもコンパイルされた JavaScript コードに変換されることはありません。

から https://stackoverflow.com/a/16016688/318557 で、@JasonEvans が指摘するように

この件に関しては、TypeScriptのレポに2015年6月からのオープンイシューがあります。 https://github.com/microsoft/TypeScript/issues/3628