如何在打字稿中执行 document.getElementById().value 之类的操作?

use*_*514 5 typescript reactjs

我有一些代码,其中包含一个反应表单,其中包含类似以下内容:

<input id="region"></input>
Run Code Online (Sandbox Code Playgroud)

我有一个通过单击按钮调用的函数,我想获取 id“region”的值。

我已经看到据说我可以做这样的事情:

let test : string = <HTMLInputElement>document.getElementById(region).value;
Run Code Online (Sandbox Code Playgroud)

但我可以验证8种方法到周日行不通。如果我尝试这样做,我会收到语法错误,提示缺少逗号。

那么有没有办法做到这一点呢?我缺少什么?把我当白痴吧,因为我只用了 48 小时打字。

Dan*_*try 7

我假设您由于标签而使用 React,因此我假设以下代码位于 tsx 文件中。

let test : string = <HTMLInputElement>document.getElementById(region).value;
Run Code Online (Sandbox Code Playgroud)

您不能在 TSX 文件中使用箭头括号强制转换,因为 TypeScript 会假设您正在尝试使用 React 元素。您必须改为使用as强制转换的形式:

let test : string = (document.getElementById(region) as HTMLInputElement).value;
Run Code Online (Sandbox Code Playgroud)


Mor*_*ish -1

Typescript 是 Javascript 的超集。每个有效的 Javascript 代码都是有效的 Typescript 代码。

如果您尝试做的事情没有按预期进行,则可能是出于其他原因。