web-dev-qa-db-fra.com

erreur: la propriété 'select' n'existe pas sur le type HTMLElement

no error local demo

vscode complains error

 function copy(){
        var Url=document.getElementById("Id");
        Url.select(); //error
        document.execCommand("Copy"); // browser copy
        }

comme ci-dessus. J'essaie de créer une fonction pour copier du texte dans le navigateur, mais l'erreur comme titre s'est produite dans TypeScript. le select () est valide je pense ( link ), car je peux copier correctement quand je l'utilise dans une démo. ma version ts est 2.8.1

8
John

Vous devez ajouter un type assertion :

var Url = document.getElementById("Id") as HTMLInputElement;
Url.select(); // OK

Raison

getElementById peut renvoyer n'importe quel HTMLElements. Dans votre cas vous savez que c'est un élément d'entrée afin que vous puissiez dire à TypeScript qu'en utilisant une assertion de type ????.

35
basarat

La méthode select est définie pour HTMLInputElement s. Ce qui suit supprimera l'erreur TypeScript.

let Url: HTMLInputElement = document.getElementById("Id") as HTMLInputElement;
Url.select();
document.execCommand("Copy");
3
GSSwain