打字稿与嵌套解构

时间:2018-06-18 08:02:08

标签: javascript typescript ecmascript-6 react-tsx

ES6很棒,它减少了代码的数量,但是一切的打字稿都不起作用。

如果我想为我的参数实现类型检查,这已经被破坏了多个级别,那不是一团糟吗?我认为在开始时使用界面做一次就足够了,你怎么看?或者您可以检查所有内容,但不要过度使用es6以获得更好的可读性。

<div>
      {response.results.map(({id, name, stock: {day: dayStock, month: monthStock}}) => {
        return(
          <div>
            <p>Item: {name}</p>
            <p>Day Stock: {dayStock}</p>
            <p>Month Stock: {monthStock}</p>
            <br />
          </div>
        )
      })}
    </div>

打字稿操场:https://codesandbox.io/s/v06ml2y130

1 个答案:

答案 0 :(得分:4)

如果您键入results,则可以注释解构对象。

type Item = {
    id: number;
    name: string;
    stock: {
        month: number;
        week: number;
        day: number;
    };
}

const response = {
    results: [{
        id: 1,
        name: 'TV',
        stock: {
            month: 10,
            week: 5,
            day: 4
        }
    }]
};

response.results.map(
    ({ id, name, stock: { day: dayStock } }: Item) => dayStock
);