TypeScript对象的析构函数数组,包括第一个对象和其中的一个值



我有一个要销毁的对象数组,检索第一个对象和其中的一个值:

const [{ a }] = ([firstObjectInArray] = [
{
a: 1,
},
{
b: 2,
},
]);
console.log(a); // 1
console.log(firstObjectInArray); // { a: 1 }

在Javascript中,这是有效的;但在TypeScript中,它返回

Cannot find name 'firstObjectInArray'.ts(2304)

为了避免这个错误,我正在想办法键入它。

由于firstObjectInArray不是声明的一部分(它只是一个表达式(,它是对未声明变量的赋值。

要解决这个问题,有两种方法:

  • 分两步操作:

    const [firstObjectInArray] = [
    {
    a: 1,
    },
    {
    b: 2,
    },
    ];
    const {a} = firstObjectInArray
    console.log(a); // 1
    console.log(firstObjectInArray); // { a: 1 }

  • 更早地声明firstObjectInArray

    let firstObjectInArray; //<-- This can't be made `const`, as it has no initializer
    const [{ a }] = ([firstObjectInArray] = [
    {
    a: 1,
    },
    {
    b: 2,
    },
    ]);
    console.log(a); // 1
    console.log(firstObjectInArray); // { a: 1 }

最新更新