分解对象中剩余数组的类型

时间:2018-09-29 07:29:51

标签: typescript flowtype

如何在此处注释c为任意类型的可选数组?

const a = ({ b, ...c }: { b: string, c: ? }) => null

2 个答案:

答案 0 :(得分:1)

由于这是财产的解构,因此它不是数组,而是object

const a = ({ b, ...c }: { b: string, c: object}) => null;

实时非TypeScript示例:

const a = ({ b, ...c }) => {
  console.log("typeof c:", typeof c);                 // true
  console.log("Array.isArray(c):", Array.isArray(c)); // false
  console.log(JSON.stringify(c));                     // '{"x":1,"y":2,"z":3}'
};
a({x: 1, y: 2, z: 3});

答案 1 :(得分:0)

如前所述,任何类型的可选数组:<Response [403]>

c?: Array<any>

示例:

const a = ({b, c}: { b: string, c?: Array<any> }): void => null

const a = ({b, c}: { b: string, c?: Array<any> }): void => { console.log('b:', b) if (c instanceof Array) { for (let item of c) { console.log('c item:', item) } } } a({b: '1', c: [1]}) a({b: '1'}) 正在解压缩,{b, c}:b都是变量。 c是非法声明。