Estoy usando js-cookie junto con mecanografiado y me quedo atascado con los tipos al intentar analizar un elemento de cookie:
// the item 'number' contains a javascript number (ex:5) let n:number if(typeof Cookies.get('number')!== 'undefined'){ n = JSON.parse(Cookies.get('number')) }else{ n = 0 }Mecanografiado : Argumento de tipo 'cadena | undefined' no se puede asignar a un parámetro de tipo 'string'. El tipo 'indefinido' no se puede asignar al tipo 'cadena'
Estoy siguiendo el ejemplo básico de documentación mecanografiada: https://www.typescriptlang.org/docs/handbook/2/narrowing.html
¿Estoy haciendo algo mal con este fragmento de código?
Tiene dos llamadas de Cookies.get('number') . Typescript no puede saber que se devuelve el mismo valor para ambas llamadas.
Por lo tanto, guarde el valor en una variable:
let n:number let value = Cookies.get('number') if(typeof value !== 'undefined'){ n = JSON.parse(value) }else{ n = 0 }