TypeScript | カスタムタイプのオブジェクトをループできません

Mdsp

カスタム応答データオブジェクトから[key、value]ペアを返そうとしていますが、各key [value]をループしようとすると、次のエラーが発生します。

No index signature with a parameter of type 'string' was found on type 'IResponse'

または

Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'IResponse'

これが私のDetail.tsxです:

interface IResponse {
  birth_year: string;
  created: string;
  edited: string;
  eye_color: string;
  films: string[];
  gender: string;
  hair_color: string;
  heigth: string;
  homeworld: string;
  mass: string;
  name: string;
  skin_color: string;
  species: string[];
  startships: string[];
  url: string;
  vehicles: string[];
}

const Detail = () => {
  const [person, setPerson] = useState<IResponse>({} as IResponse);
  const { id } = useParams();

  useEffect(() => {
    api.get(`people/${id}`).then((res) => {
      if (res.data) setPerson(res.data as IResponse);
    });
  }, [id]);

  function printValues() {
    return Object.keys(person).map((key) => (
      <li>
        {key}:{person[key]}
      </li>
    ));
  }

  return <ul>{printValues()}</ul>;
};

私の質問は:なぜこのコード:

function objectEntries() {
    const a = "name";
    const entries = person[a];
    console.log(entries);
  }

  objectEntries();

正常に動作し、printValues関数では動作しませんか?

Mdsp

オブジェクトが[key:string]:value:anyにIResponseインターフェイスでアクセスできることをTypeScriptに伝える必要があるだけです!

お気に入り:

interface IResponse {
  [key: string]: your-value-type
  [...]
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Typescriptは、関数のオブジェクトの正しい引数タイプを推測できません

分類Dev

Typescript:オブジェクトキーの和集合であるタイプは、このオブジェクトのキーとして使用できません

分類Dev

Typescript-指定されたタイプのオブジェクトをジェネリックタイプに割り当てることはできません

分類Dev

タイプがオブジェクトであってもオブジェクトプロパティにアクセスできません-React + Typescript

分類Dev

Typescript:スプレッドタイプはオブジェクトタイプからのみ作成できます

分類Dev

Typescriptが「いずれかのタイプ」のオブジェクトキーを理解していません

分類Dev

typescriptで、キーのリストを使用してオブジェクトから未定義タイプとnullタイプを削除できますか?

分類Dev

TypeScriptのマップからカスタムキータイプからオブジェクトを取得するにはどうすればよいですか?

分類Dev

Typescript:タイプをjsonオブジェクトにキャストするときに、「プロパティgetNameがタイプにありません」

分類Dev

typescriptでのカスタムシリアル化が期待どおりに行われていません(配列はスプレッド付きのオブジェクトに変換されています)

分類Dev

TypeScript-クラスのオブジェクト定義からインターフェイスを見ることができません

分類Dev

Typescriptで配列のオブジェクトを宣言します。エラータイプ「{}」の取得次のプロパティがありません

分類Dev

Typescriptでコンストラクターにオブジェクトを渡すことができません

分類Dev

typescriptのオブジェクトのリストからアイテムを削除できません

分類Dev

typescriptを使用してオブジェクトの監視可能なリストでフィルターを使用できません

分類Dev

typescriptでオブジェクトを作成するときに、インターフェイスの特定のプロパティを無視しますか?

分類Dev

Typescript:インターフェイスのタイプであるオブジェクトが別のオブジェクトと等しいかどうかを比較します同じインターフェイスタイプを持っています

分類Dev

複数の値の小道具を使用してオブジェクトを反復処理すると、Typescriptエラーが発生します:タイプをタイプに割り当てることはできません

分類Dev

TypeScript | タイプスクリプトをインストールできません

分類Dev

TypeScriptインターフェイスでプロパティオブジェクトを記述します

分類Dev

React TypeScriptでブール値のみを含むオブジェクトのタイプは何ですか?

分類Dev

カスタムtypescriptクラスでjavascriptオブジェクトtoString()をオーバーライドする

分類Dev

TypeScriptは、ジェネリックパラメータと同じベースのオブジェクトを返すことはできません

分類Dev

ファイヤーストアのタイムスタンプでオブジェクトjavascript / typescriptの配列を並べ替える

分類Dev

TypeScriptオブジェクトタイプ

分類Dev

Typescript、タプル要素のオブジェクトタイプを組み合わせる

分類Dev

typescriptを使用してノードタイプのモジュールをインポートできません

分類Dev

typescript2.2インターフェイスはオブジェクトタイプを拡張します

分類Dev

Typescript:オブジェクト[名前:タイプ]をインターフェースに変換します

Related 関連記事

  1. 1

    Typescriptは、関数のオブジェクトの正しい引数タイプを推測できません

  2. 2

    Typescript:オブジェクトキーの和集合であるタイプは、このオブジェクトのキーとして使用できません

  3. 3

    Typescript-指定されたタイプのオブジェクトをジェネリックタイプに割り当てることはできません

  4. 4

    タイプがオブジェクトであってもオブジェクトプロパティにアクセスできません-React + Typescript

  5. 5

    Typescript:スプレッドタイプはオブジェクトタイプからのみ作成できます

  6. 6

    Typescriptが「いずれかのタイプ」のオブジェクトキーを理解していません

  7. 7

    typescriptで、キーのリストを使用してオブジェクトから未定義タイプとnullタイプを削除できますか?

  8. 8

    TypeScriptのマップからカスタムキータイプからオブジェクトを取得するにはどうすればよいですか?

  9. 9

    Typescript:タイプをjsonオブジェクトにキャストするときに、「プロパティgetNameがタイプにありません」

  10. 10

    typescriptでのカスタムシリアル化が期待どおりに行われていません(配列はスプレッド付きのオブジェクトに変換されています)

  11. 11

    TypeScript-クラスのオブジェクト定義からインターフェイスを見ることができません

  12. 12

    Typescriptで配列のオブジェクトを宣言します。エラータイプ「{}」の取得次のプロパティがありません

  13. 13

    Typescriptでコンストラクターにオブジェクトを渡すことができません

  14. 14

    typescriptのオブジェクトのリストからアイテムを削除できません

  15. 15

    typescriptを使用してオブジェクトの監視可能なリストでフィルターを使用できません

  16. 16

    typescriptでオブジェクトを作成するときに、インターフェイスの特定のプロパティを無視しますか?

  17. 17

    Typescript:インターフェイスのタイプであるオブジェクトが別のオブジェクトと等しいかどうかを比較します同じインターフェイスタイプを持っています

  18. 18

    複数の値の小道具を使用してオブジェクトを反復処理すると、Typescriptエラーが発生します:タイプをタイプに割り当てることはできません

  19. 19

    TypeScript | タイプスクリプトをインストールできません

  20. 20

    TypeScriptインターフェイスでプロパティオブジェクトを記述します

  21. 21

    React TypeScriptでブール値のみを含むオブジェクトのタイプは何ですか?

  22. 22

    カスタムtypescriptクラスでjavascriptオブジェクトtoString()をオーバーライドする

  23. 23

    TypeScriptは、ジェネリックパラメータと同じベースのオブジェクトを返すことはできません

  24. 24

    ファイヤーストアのタイムスタンプでオブジェクトjavascript / typescriptの配列を並べ替える

  25. 25

    TypeScriptオブジェクトタイプ

  26. 26

    Typescript、タプル要素のオブジェクトタイプを組み合わせる

  27. 27

    typescriptを使用してノードタイプのモジュールをインポートできません

  28. 28

    typescript2.2インターフェイスはオブジェクトタイプを拡張します

  29. 29

    Typescript:オブジェクト[名前:タイプ]をインターフェースに変換します

ホットタグ

アーカイブ