0

Avoir le code suivant:compilateur Tapuscrit omet une erreur "non cessible" pour tuples

var abc: [string, number] = [5, "test"]; 

console.log(abc); 

La ligne rouge gribouillis, comme je m'y attendais, apparaît sous 'abc', avec cette erreur:

[ts] Type '[number, string]' is not assignable to type '[string, number]'. Type 'number' is not assignable to type 'string'.

Cependant, il compile encore dans JS comme ceci:

var abc = [5, "test"]; 
console.log(abc); 

Ai-je raté une option du compilateur, ou il est un bug?

Répondre

1

Ceci est un comportement TypeScript standard. Pour la plupart des types d'erreurs, le compilateur TypeScript génère toujours un fichier JavaScript. (Il ne renvoie un code de sortie non nul que créer des scripts peuvent détecter et agir.)

Essayez d'autres types d'erreurs, comme les noms de variables mal orthographiés:

var abc: number = 5; 
console.log(abd); 

et vous verrez la la même chose arrive.

Édition: oh, et il est un indicateur de compilateur pour changer ce comportement. L'utilisation de:

tsc --noEmitOnError test.ts 

supprime la génération du fichier test.js en cas d'erreur.