ウェブサイト検索

typescript - 型 'boolean' のプロパティ 'selected' を 'string' インデックス型 'Field' に割り当てることはできません


このコードの部分で

export interface Field {
  selected:  boolean;
  value: any;
}

export interface ConflictingVersionModel {
  [key: string]: Field;
  selected: boolean;
}

このエラーが発生します: TS2411: 型 'boolean' のプロパティ 'selected' は、'string' インデックスタイプ 'Field' に割り当てることができません。

もし私が試しても同じもの

export interface ConflictingVersionModel {
  [key: string]: {
    selected:  boolean;
    value: any;
  };
  selected: boolean;
}

何が問題かについて何か考えはありますか?

回答 #1

うん、それはうまくいかない。インデックス署名は「このオブジェクトのすべてのプロパティはこの型を持つ」という意味だ。

ただし、交差型を使用することで、あなたが試みようとしているように見えることを実現することは可能です

export interface Field {
  selected:  boolean;
  value: any;
}

type ConflictingVersionModel = {
  [key: string]: Field;
} & { selected: boolean }

関連記事