我目前正在发现TypeScript。我使用以下代码:
const someClass = document.querySelector(".that-class");
const someId = document.getElementById("elemId").value;
正如我之前的许多其他人一样,当然还有更多的人,我得到了以下错误:
Property 'style' does not exist on type 'Element'.
Property 'value' does not exist on type 'HTMLElement'.
我在我的电脑中修复了这些错误。通过添加
我的问题很简单:有没有一种方法可以避免JS文件中出现这些错误(例如:有没有一种“更干净”的方法来编写JavaScript代码)?或者我应该忽略这些警告吗?
非常感谢你的帮助!
这里有一些好消息:我找到了我想要的答案。
给你一些额外的上下文:我正在处理一个表单,需要使用JavaScript/TypeScript操作一些用户输入。以下是代码:
<form id="my-form" action="index.html" method="get" onsubmit="return showValue();">
<input type="text" name="username">
<input type="text" name="full-name">
<input type="password" name="password">
<button type="button" onclick="showValue();">Send</button>
</form>
和我的JavaScript代码:
function showValue() {
const myForm = document.getElementById("my-form").value;
console.log(myForm);
return 1;
}
这将返回警告:“属性'value'在类型'HTMLElement'
上不存在。
通过在TypeScript中添加此代码的一些变体,可以很容易地解决这个问题:
const myForm = (<HTMLInputElement>document.getElementById("my-form")).value;
太好了,在打字脚本中没有更多的警告。但编译后,生成的JavaScript文件将再次显示警告:“属性“X”在类型X上不存在”
因此,我的问题是,我如何编写我的代码,这样我就不会收到任何警告?
我希望能找到如下答案:
function showValue() {
const myForm = document.forms.my-form;
console.log(myForm?.username.value);
return 1;
}
我花了很长时间才找到它,并在规范文档中进行了一些挖掘,但希望这似乎有效!
我仍然要感谢你们所有人的评论,他们在我寻找答案的过程中帮助很大。
我已将TS添加到我的React/Redux应用程序中。 我在我的应用程序中使用对象,如下所示: TS抛出一个错误: 类型脚本错误:类型“窗口”上不存在属性“FB”。TS2339 我想修正这个错误。 我在这里找到了答案https://stackoverflow.com/a/56402425/1114926 为什么第一个版本不起作用,而第二个版本起作用,尽管我根本没有指定FB属性?
我想使用以下代码实现文件下载: RestAPI: 服务: 组件: 当我启动angular时,我得到错误:src/app/panel/service/download中的错误。服务ts(17,91):错误TS2339:类型“Observable”上不存在属性“map”。 将导入代码的正确wya是什么?当我点击下载按钮时,什么也没发生。
问题内容: 在编程课上,教授正在教我们有关和的信息,其中x是整数。 他说,在这种情况下,我们可以只将or或放进去,以提高效率(虽然有点,但从理论上讲,还是效率更高)。 但是我忘了为什么 。有谁知道?这是与Java。 问题答案: 在Java中效率不是更高。在递增/递减运算符可以重载的语言中,它可能会更有效,但在其他方面,性能则完全相同。 和之间的区别在于,返回的值 是递增之前的值,返回的值是递增之后
最近在一次采访中,我被问到,“Java中的动态多态性示例是什么?” 我回答:“方法覆盖”。 然后,面试官问:“是否有任何压倒一切的概念不属于动态多态性?” 这真的是个好问题吗?如果是,答案是什么? 提前感谢。
问题内容: 我曾经听过一位老师丢弃它,此后一直困扰着我。假设我们要检查整数是否大于或等于0。有两种检查方法: 和 据这个老师说会快一些。在这种情况下,它是Java,但据他说,这也适用于C,c ++和其他语言。这句话有什么道理吗? 问题答案: 在现实世界中没有任何区别。 让我们看一下各种编译器为各种目标生成的代码。 我假设一个有符号的int操作(这似乎是OP的意图) 通过调查,我仅限于C和我手边的编
根据这位老师的说法,会比稍微快一点。在本例中,它是Java,但据他说,这也适用于C、C++和其他语言。这种说法有道理吗?