ウェブサイト検索

TypeScript - 文字列変数を検証するためのインターフェースメンバー


例えば、私はこのようなインターフェースを持っているとしましょう:

interface field {
    code: string
    name: string
    // ...
}

それから、私はそのインターフェースのメンバーのみを受け入れる値を持つ変数を作成したいです:

let key: "code" | "name" // ...

インターフェースのメンバーが多い場合、とても幅の広いコード行になりますが、これに対する解決策はありますか?

上記のようにTypeScriptを使用して、インターフェースのメンバーに基づいて変数を検証する迅速な方法はありますか?

回答 #1

これは keyof 型演算子の使用例です:

keyof 演算子はオブジェクト型を受け取り、そのキーの文字列または数値リテラルのユニオンを生成します。

interface field {
    code: string
    name: string
    // ...
}

let key: keyof field;

key = "code"; // Okay
key = "other"; // Type '"other"' is not assignable to type 'keyof field'.

遊び場リンク