什么是Typescript与document.getElementbyID的问题?

时间:2018-04-24 13:21:28

标签: typescript

请有人选择一个更好的头衔,因为我坦率地不知道如何为这个冠名。

我正在尝试做的是将Textarea的内容作为字符串(与NW.js文件函数一起使用,因为我正在编写一个对平面文件执行操作的应用程序)并且我正在使用以下代码执行操作的是:

let file = document.getElementById("txt").value;

在编译成JS之后就可以了。但是,TypeScript编译器会抱怨值部分:

Property 'value' does not exist on type 'HTMLElement'

我做错了什么?

1 个答案:

答案 0 :(得分:3)

TypeScript的存在理由是将静态类型应用于类似JavaScript的代码。 document.getElementById返回HTMLElement,其中没有value(毕竟,它可能是任何类型的HTML元素),因此TypeScript会警告您使用{{1}的属性没有。 TypeScript无法知道您获得的具体元素是HTMLElement(具有HTMLInputElement),除非您告诉它是通过强制转换(技术上,type assertion):

value