该属性在HTMLElement的值类型中不存在

Jal*_*tel 3 javascript durandal typescript1.6

typescript中我需要实现输入元素的特定caretPosition.但是当我尝试实现它时,显示类型HTMLElement中不存在createTextRange类型.任何人都有解决方案?提前致谢.

以下是我的代码

private setCaretPosition() {
    var el = document.getElementById("ticketInfo");
    if (el !== null) {
        if (el.createTextRange) {
            var range = el.createTextRange();
            range.move('character', el.value.length);
            range.select();
            return true;
        }
        else {
            if (el.selectionStart || el.selectionStart === 0) {
                el.focus();
                el.setSelectionRange(length, length);
                return true;
            }
            else { // fail city, fortunately this never happens (as far as I've tested) :)
                el.focus();
                return false;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它显示了createTextRange()未定义

sin*_*sem 11

el变量转换为HTMLInputElement.

UPD:

const input : HTMLInputElement = <HTMLInputElement>el;
Run Code Online (Sandbox Code Playgroud)


And*_*vic 0

这很奇怪,因为我实际上在HTMLElement API中没有看到 createTextRange 这个方法

你从哪里得到这个方法,因为 API 中根本没有这样的方法,也许你使用了一些外部库。