我有一个要销毁的对象数组,检索第一个对象和其中的一个值:
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 }