Adaptei o storageService para lembrar das credenciais e popular o login e senha. Por algum motivo o parser não funciona direiro no navegador, código abaixo funciona no vscode, contudo, no navegador não
type LoginData = {
userName: string;
password: string;
}
interface StorageObject<T> {
key: string;
value: T;
}
tentativa
let loginData: LoginData = this.storageService.get("loginData") as LoginData; // aqui a interface reclama
outra tentativa sem sucesso
let loginData = this.storageService.get<StorageObject<LoginData> | null>("loginData") as StorageObject<LoginData> | null;
Mais uma tentativa, não funcionou, todas as tentativas tem esse erro de comportamento.
let loginData: StorageObject<LoginData> = this.storageService.get("loginData") as StorageObject<LoginData>;
console.log(loginData); //<-- nesse momento tipo que retorna no navegador { userName: string; password: string; }; // não é o correto
if (loginData) {
console.log("verdade funciona");
let dataL: LoginData = loginData.value; // <-- logo aqui é indefinido
username.value = dataL?.userName;
password.value = dataL?.password;
console.log("valor username.value =" + username.value);
rememberMe.value = true;
}
O que funcionou foi no meu caso
console.log("verificando login data");
let loginData: any = local.get<StorageObject<LoginData>>("loginData") as LoginData | null;
console.log(loginData);
if (loginData) {
console.log("verdade funciona");
// let dataL: LoginData = loginData.value;
username.value = loginData?.userName?.toString();
password.value = loginData?.password;
console.log("valor username.value =" + loginData?.userName);
rememberMe.value = true;
}
Não entendi por que a tipagem não funcionou, alguém sabe fazer de alguma outra maneira?