类型“ HTMLElement”上不存在属性“值”

时间:2018-12-05 14:04:20

标签: javascript angular

directive中的Angular内,我执行了以下操作:

let input: HTMLElement = renderer.createElement('input');
renderer.appendChild(this.elem.nativeElement, input);

,当我尝试使用以下方法获取此输入中写入的值:

console.log('value', input.value);

我收到此错误:

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

尽管我们所有人现在都希望使用javascript从输入中获取价值,但我们可以执行以下操作:

document.getElementById("searchTxt").value;

document.getElementById()返回null或HTMLElement对象:

  

/ **        *返回具有指定ID或NAME属性值的第一个对象的引用。        * @param elementId指定ID值的字符串。不区分大小写。        * /       getElementById(elementId:string):HTMLElement | null;

那我为什么会收到这个错误?!

1 个答案:

答案 0 :(得分:6)

改为使用HTMLInputElement

let input: HTMLInputElement= renderer.createElement('input');

HTMLElement接口中没有“ value”属性,因此会出现这些.ts错误。 HTMLInputElement接口扩展了HTMLElement并具有“值”属性。