298 votes

Ignorer les erreurs Typescript "la propriété n'existe pas sur la valeur du type"

Dans VS2013, la construction s'arrête lorsque tsc quitte avec le code 1. Ce n'était pas le cas dans VS2012.

Comment puis-je exécuter ma solution en ignorant l'erreur de tsc.exe ?

Je reçois de nombreuses erreurs La propriété 'x' n'existe pas sur la valeur de type 'y', que je souhaite ignorer lors de l'utilisation de fonctions JavaScript.

25voto

Lewis Points 1848

Je sais que nous sommes maintenant en 2020, mais je n'ai pas trouvé de réponse satisfaisante pour la partie "ignorer" de la question. Il s'avère que vous pouvez dire à TSLint de le faire en utilisant une directive ;

// @ts-ignore
this.x = this.x.filter(x => x.someProp !== false);

Normalement, cela jetterait une erreur, indiquant que 'someProp n'existe pas sur le type'. Avec le commentaire, cette erreur disparaît.

Cela empêchera toute erreur d'être lancée lors de la compilation et devrait également empêcher votre IDE de se plaindre.

17voto

Avram Virgil Points 730

J'avais un problème en Angular2, j'utilisais le stockage local pour sauvegarder quelque chose et il ne me le permettait pas.

Solutions:

J'avais localStorage.city -> erreur -> Propriété 'city' n'existe pas sur le type 'Storage'.

Comment le corriger:

localStorage['city']

(localStorage).city

(localStorage as any).city

7voto

danday74 Points 15895

Une solution rapide lorsque rien d'autre ne fonctionne :

const a.b = 5 // erreur

const a['b'] = 5 // erreur si la règle ts-lint no-string-literal est activée

const B = 'b'
const a[B] = 5 // fonctionne toujours

Ne sont pas de bonnes pratiques mais fournissent une solution sans avoir besoin de désactiver no-string-literal

0voto

Randy Points 5924

Dans mon projet en particulier, je n'arrivais pas à le faire fonctionner et j'ai utilisé déclarer var $;. Pas une solution propre/recommandée, ça ne reconnaît pas les variables JQuery, mais je n'ai eu aucune erreur après l'avoir utilisé (et j'ai dû le faire pour que mes builds automatiques réussissent).

0voto

cs_pupil Points 616

J'ai pu passer outre cela en utilisant quelque chose comme :

let x = [ // données à l'intérieur du tableau ];
let y = new Map();
for (var i=0; i

`

Cela semblait être la seule façon dont je pouvais utiliser les valeurs à l'intérieur de X comme clés pour la map Y et compiler.

`

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X