const json: {} | null | undefined = JSON.parse(queryData);
{
"defaultSeverity": "error",
"extends": [
"tslint:all"
],
"rules": {
}
}
Uso não seguro da expressão do tipo 'qualquer'.
Eu posso fazer const json: any = JSON.parse(queryData);
mas quero manter as regras proibidas
Como posso obter o retorno de JSON.parse sem obter o uso inseguro da expressão do tipo 'any'.
Não tenho certeza do que você está esperando aqui ... Você deseja usar any
, mas deseja manter a regra no-any
? Isso se contradiz completamente. O que o impede de apenas declarar o tipo de correspondência para seus dados de consulta e apenas fazer const json: YourType = JSON.parse(queryData);
?
Obrigado pela resposta. Eu não fui claro
Meu objetivo é manter as regras no-any e procuro uma maneira de obter o resultado de JSON.parse (queryData) sem avisar.
Fo agora eu faço json: any = JSON.parse (queryData); => mas eu tenho que desativar o nenhum.
Se eu fizer sua solução: const json: YourType = JSON.parse (queryData);
Terei então que desabilitar as regras não inseguras.
É por isso que, em minha primeira abordagem, tento: const json: {} | null | undefined = JSON.parse (queryData); Olhando no documento https://palantir.github.io/tslint/rules/no-unsafe-any/ => eu não terei o no-unsafe-any e o no any warning.
Mas JSON.parse também pode retornar outro tipo como string, então esta solução não é a única.
Na verdade não tenho certeza se existe uma solução, mas antes prefiro perguntar a vocês especialistas.
@ohrrkan, seu caso de uso é bom - normalmente o que as pessoas fazem é JSON.parse(queryData) as MyType
. Fechando isso como não acionável por enquanto, uma vez que não houve muita demanda por qualquer ação por parte do TSLint. Espero que ajude!