Quiero usar el encadenamiento opcional en mi proyecto Ionic pero recibo errores a pesar de que uso la notación correcta.
Mi código
// Get Array (might be empty) const array = await getArray(); return array?.[0];
Mi compilador arroja 3 errores:
ERROR in path/to/file.ts:12:34 - error TS1109: Expression expected. [ng] 12 return array?.[0]; [ng] ~ [ng] path/to/file.ts:12:34 - error TS1003: Identifier expected. [ng] 12 return array?.[0]; [ng] ~ [ng] path/to/file.ts:12:34 - error TS1005: ':' expected. [ng] 12 return array?.[0]; [ng] ~
No entiendo por qué hay un error. Según https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining#array_item_access_with_opcional_chaining , la sintaxis sería correcta. Mi IDE (vscode) tampoco me arroja un error
Acceso a elementos de matriz con encadenamiento opcional Puede utilizar la notación de corchetes para el encadenamiento opcional en matrices:
const arr = ['a', 'b', 'c', 'd']; let elementoArray = arr?.[42];
Mi versión mecanografiada parecía ser demasiado antigua (3.4.3). El encadenamiento opcional se introdujo en 3.7 ( https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html ), por lo que tiene sentido que no funcione en mi versión anterior.
Simplemente supuse que mi proyecto estaba relativamente actualizado, pero resulta que no lo estaba.