1. ホーム
  2. typescript

[解決済み] オブジェクトの配列に対してインターフェースを定義するには?

2022-03-12 01:03:04

質問

以下のインターフェースとコードを持っています。正しく定義しているつもりなのですが、エラーが発生します。

interface IenumServiceGetOrderBy { id: number; label: string; key: any }[];

とします。

getOrderBy = (entity): IenumServiceGetOrderBy => {
        var result: IenumServiceGetOrderBy;
        switch (entity) {
            case "content":
                result =
                [
                    { id: 0, label: 'CId', key: 'contentId' },
                    { id: 1, label: 'Modified By', key: 'modifiedBy' },
                    { id: 2, label: 'Modified Date', key: 'modified' },
                    { id: 3, label: 'Status', key: 'contentStatusId' },
                    { id: 4, label: 'Status > Type', key: ['contentStatusId', 'contentTypeId'] },
                    { id: 5, label: 'Title', key: 'title' },
                    { id: 6, label: 'Type', key: 'contentTypeId' },
                    { id: 7, label: 'Type > Status', key: ['contentTypeId', 'contentStatusId'] }
                ];
                break;
        }
        return result;
    };

エラーです。

Error   190 Cannot convert '{}[]' to 'IenumServiceGetOrderBy':
    Type '{}[]' is missing property 'id' from type 'IenumServiceGetOrderBy'

解決方法は?

インターフェイスを定義するには インデクサ :

interface EnumServiceGetOrderBy {
    [index: number]: { id: number; label: string; key: any };
}