解构对象中剩余数组的类型
Type of a rest array in a destructured object
如何在此处将 c
注释为任意类型的可选数组?
const a = ({ b, ...c }: { b: string, c: ? }) => null
因为那是 属性 解构,它不会是一个数组,而是一个 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});
如您所述,任意类型的可选数组: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
都是变量。 {b, ...c}:
是非法声明。
.
如何在此处将 c
注释为任意类型的可选数组?
const a = ({ b, ...c }: { b: string, c: ? }) => null
因为那是 属性 解构,它不会是一个数组,而是一个 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});
如您所述,任意类型的可选数组: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
都是变量。 {b, ...c}:
是非法声明。
.