首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeScript发出对象数组

TypeScript发出对象数组
EN

Stack Overflow用户
提问于 2022-01-25 21:53:39
回答 2查看 105关注 0票数 -1

我要做的是映射一个数组,该数组包含带有属性的对象和其他嵌套对象,以返回我以前导入的React组件。

我从TypeScript那里得到这个

属性'max_temp‘在’从不‘类型上不存在。属性'min_temp‘在’从不‘类型上不存在。

我的猜测是,TypeScript抱怨是因为它不知道我的数组中包含嵌套的对象,所以它说我永远不会得到调用它的任何东西。这是我的代码(下面我会发布一个截图)

代码语言:javascript
复制
import React from "react";
import Card from "./Card";
type Props = {
  cities: [];
};

const Cards: React.FC<Props> = ({ cities }) => {
  return (
    <div>
      {cities.map(({ name, main, weather }) => {
        return (
          <Card
            name={name}
            max={main.max_temp}
            min={main.min_temp}
            img={weather[0].icon}
            onClose={() => alert({ name })}
          />
        );
      })}
    </div>
  );
};
export default Cards;

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-25 21:59:56

您必须键入您的城市数组,例如类似的东西(您的Card支持可能实际上需要不同的类型):

代码语言:javascript
复制
import React from "react";
import Card from "./Card";
type Props = {
  cities: [
    { name: string, 
      main: {
         max_temp: number, 
         min_temp: number
      }, 
      weather: Array<{icon: any}> 
    }];
};

const Cards: React.FC<Props> = ({ cities }) => {
  return (
    <div>
      {cities.map(({ name, main, weather }) => {
        return (
          <Card
            name={name}
            max={main.max_temp}
            min={main.min_temp}
            img={weather[0].icon}
            onClose={() => alert({ name })}
          />
        );
      })}
    </div>
  );
};
export default Cards;
票数 1
EN

Stack Overflow用户

发布于 2022-01-25 21:56:34

你还没有定义道具中的城市类型。

代码语言:javascript
复制
type Props = {
  cities: []; <--- what is this array of?
};

例如:

代码语言:javascript
复制
type Props = {
  cities: CityType[];
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70856151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档