Typescript: let name: string = "bob"; ne fonctionne pas.

Créé le 15 avr. 2016  ·  3Commentaires  ·  Source: microsoft/TypeScript

Bonjour, j'ai commencé à utiliser TypeScript récemment. C'est un langage super utile pour moi :)
Au fait, je suis dans un tutoriel sur String Type ici https://www.typescriptlang.org/docs/handbook/basic-types.html

Version TypeScript:

1.8.10

Code

Cela ne marche pas.

_hello.ts_

let name: string = "bob";

Chaque fois que je compile, le compilateur émettra ce qui suit.

$ tsc hello.ts
../../usr/local/lib/node_modules/typescript/lib/lib.d.ts(16757,13): error TS2451: Cannot redeclare block-scoped variable 'name'.
hello.ts(1,5): error TS2451: Cannot redeclare block-scoped variable 'name'.

Ça marche.

_hello.ts_

let aname: string = "bob";

Attendre un comportement

J'ai lu une partie du lib.d.ts et il a declare var name: string; . Je peux donc comprendre que le compilateur émet une erreur. Cependant quel concept ne pouvons-nous pas utiliser la variable name dans TypeScript?
Et je pense que le tutoriel qui ne fonctionne pas n'est pas bon :(
Ou y a-t-il quelque chose qui ne va pas avec moi? J'espère rejouer une réponse :)

Question

Commentaire le plus utile

Parce qu'il existe déjà une variable appelée name sur la _global scope_. Essayez-le dans votre navigateur, console.log(name) et vous verrez une chaîne vide (ou peut-être une autre chaîne) au lieu de undefined .

Réparer

Mettez votre variable de nom dans un _module_ ou namespace : https://basarat.gitbooks.io/typescript/content/docs/project/modules.html

Tous les 3 commentaires

Parce qu'il existe déjà une variable appelée name sur la _global scope_. Essayez-le dans votre navigateur, console.log(name) et vous verrez une chaîne vide (ou peut-être une autre chaîne) au lieu de undefined .

Réparer

Mettez votre variable de nom dans un _module_ ou namespace : https://basarat.gitbooks.io/typescript/content/docs/project/modules.html

Documentation pour cette variable: https://developer.mozilla.org/en-US/docs/Web/API/Window/name : rose:

@basarat
Merci pour votre réponse. Cela a une telle signification ...
Je ne savais pas qu'il y avait déjà name variable

@DanielRosenwasser
Merci d'avoir corrigé le document aussi :)

Cette page vous a été utile?
0 / 5 - 0 notes