Tengo una variable foo para ser inicializada. Mi intento a continuación no se compila.
let foo: (x: number)=>{y:number,z: number}= (x)=>{x+1,x+2};con el siguiente error:
El lado izquierdo del operador de coma no se usa y no tiene efectos secundarios. ts (2695) (parámetro) x: número
¿Cuál es la forma correcta de inicializar la variable foo ?
Debido a cómo funciona la notación de función de flecha, las llaves alrededor de la salida se interpretan como que contienen el cuerpo de la función en lugar de devolver un valor.
Hay dos maneras de evitar esto. Una es usar la notación de función de flecha más larga, con una declaración de return . La otra es envolver su objeto entre paréntesis.
También parece que olvidó agregar las etiquetas y y z en su salida.
Prueba uno de estos:
let foo: (x: number) => {y: number, z: number} = (x) => ({y: x+1, z: x+2}); let foo: (x: number) => {y: number, z: number} = (x) => { return {y: x+1, z: x+2}; };También vale la pena señalar que al inicializar una variable de esta manera, TypeScript puede inferir su tipo. Entonces, en realidad puede acortar su código a solo uno de estos:
let foo = (x: number) => ({y: x+1, z: x+2}); let foo = (x: number) => { return {y: x+1, z: x+2}; };