Tslint: Uso não seguro da expressão do tipo 'qualquer'.

Criado em 5 jan. 2018  ·  3Comentários  ·  Fonte: palantir/tslint

Relatório de erro

  • __TSLint version__: 5.8.0
  • __TypeScript version__: 2.6.2
  • __Executando TSLint via__: API Node.js

Código TypeScript sendo vinculado

const json: {} | null | undefined = JSON.parse(queryData);

Configuração

{
    "defaultSeverity": "error",
    "extends": [
        "tslint:all"
    ],
    "rules": {
    }
}

Comportamento real

Uso não seguro da expressão do tipo 'qualquer'.

Comportamento esperado

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'.

Not A Bug

Todos 3 comentários

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!

Esta página foi útil?
0 / 5 - 0 avaliações