2012-10-09 13 views
33

tengo este caso:función mecanografiado flecha expresión regresar objeto

interface MoverShaker { 
    getStatus(): { speed: number; frequency: number; }; 
} 

function GetMoverShaker() : MoverShaker { 
    return { 
     getStatus:() => { speed: 2, frequency: 3 } 
    } 
} 

estoy recibiendo dicho error: La 'frecuencia' nombre no existe en el ámbito actual. ¿Es posible tal construcción en TypeScript? Si estoy utilizando dicha construcción, entonces todo está bien:

function GetMoverShaker(): MoverShaker { 
    return { 
     getStatus:() => { 
      return { speed: 2, frequency: 3 } 
     } 
} 

Respuesta

97

Puede añadir parens:

() => ({x:1,y:2}) 

Esto hace que el analizador entender que el {no es el comienzo de un bloque de código.

+14

También puede hacer esto a través del elenco. '() => {x: 1, y: 1}' –

+0

No me gusta el envío a * cualquier *. En realidad, también me han mordido fundiéndome en el tipo de interfaz de salida deseado al agregar una nueva propiedad a la interfaz. Como estaba haciendo un yeso explícito de un (literal) objeto literal, VS Code no marcó ningún error, incluso si al literal le faltaba la nueva propiedad. – superjos

Cuestiones relacionadas