错误:属性“select”在 HTMLElement 类型上不存在

新手上路,请多包涵

没有错误的本地演示

vscode 报错

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

如上。我正在尝试制作一个在浏览器中复制文本的功能。但是标题错误出现在打字稿中。我认为 select() 是有效的( 链接),因为我在演示中使用它时可以正确复制。我的 ts 版本是 2.8.1

原文由 John 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 892
2 个回答

您需要添加 类型断言

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

原因

getElementById 可以返回任何 HTMLElement s。在您的情况下 ,您知道它是一个输入 元素,因此您可以通过使用类型断言 🌹 告诉 TypeScript。

原文由 basarat 发布,翻译遵循 CC BY-SA 3.0 许可协议

selectHTMLInputElement 定义了方法。以下将摆脱 TypeScript 错误。

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

原文由 GSSwain 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏