web-dev-qa-db-fra.com

Comment activer / désactiver un bouton dans TypeScript 1.5?

Utilisation de VS 2013. Après avoir installé TypeScript 1.5 et suivi la question/suggestion de mise à niveau:

"Votre projet utilise une version de TypeScript antérieure à la version actuellement installée avec Visual Studio. Vous pouvez obtenir des erreurs si vous essayez de créer votre projet. Souhaitez-vous que nous mettions à niveau TypeScriptToolsVersion dans votre fichier de projet afin que vous ne voyiez pas cet avertissement encore?"

J'ai eu un tas d'erreurs comme:

Erreur 39 Build: la propriété 'désactivé' n'existe pas sur le type 'HTMLElement'.

sur des déclarations comme:

document.getElementById("btnExcel").disabled = false;

avec "désactivé" bouclé souligné.

Sur https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes faisant référence à la version 1.5, il dit: "Les propriétés sur redimensionner, désactivé, uniqueID, removeNode, fireEvent, currentStyle, runtimeStyle sont supprimées du type HTMLElement "

Maintenant, j'ai reformulé ces déclarations "erronées" comme ceci:

document.getElementById("btnExcel").setAttribute('disabled', 'disabled');

ce qui me semble bizarre.

Est-ce que cela peut être exprimé de manière plus élégante d'une manière sécurisée dans TypeScript 1.5? Pouvez-vous donner des exemples pour les deux: activer et désactiver?

Merci pour toute aide!

23
lucobada

Il devrait y avoir une façon plus propre de procéder:

var element = <HTMLInputElement> document.getElementById("btnExcel");
element.disabled = true;

Ou si vous préférez une doublure:

(<HTMLInputElement> document.getElementById("btnExcel")).disabled = true;

Il semble que getElementById et similaires devraient être une méthode générique et accepter un paramètre de type. Cela dit, une méthode générique ne vous donnerait rien d'autre que la conversion de type.

44
Martin