我想通过myForm.elements
访问表单元素,然后按名称访问每个元素,例如myForm.elements.month
。打字稿不是这样的b / c它不知道form.elements
包含month
的属性。我想,让我们创建一个界面!所以我做了,(见下面的代码),但我得到这个打字稿错误:Neither type 'HTMLCollection' nor type 'FormElements' is assignable to the other
以下是与我合作的代码:
interface FormElements {
day: HTMLInputElement;
month: HTMLInputElement;
year: HTMLInputElement;
}
class BirthdateInput {
constructor(form: HTMLFormElement) {
var elements: FormElements = <FormElements> form.elements; // error here
this.day = elements.day;
this.month = elements.month;
this.year = elements.year;
}
}
关于如何更好地投射我的form.elements
对象的任何想法如此打字都不会抱怨?
答案 0 :(得分:4)
最好的办法就是这样写:
if(xhr){
xhr.onreadystatechange = showContent;
xhr.open("GET", url_new_posts, true);
xhr.send(null);
}else{
alert("Could not create XMLHttpRequest");
}
答案 1 :(得分:2)
结果添加extends
子句修复它:
interface FormElements extends HTMLCollection {
day: HTMLInputElement;
month: HTMLInputElement;
year: HTMLInputElement;
}