vanilla js 和 typescript 事件引用

时间:2021-06-26 07:24:24

标签: javascript typescript

请问有没有什么办法可以注释这段代码中的e参数的类型:

const onDrag = () => {
    // Input element
    const range = document.querySelector('input') as HTMLInputElement;

    // Paragrahp element
    const rangeValue = document.querySelector('#used-data') as HTMLElement;

  // THIS ONE HERE
    range.addEventListener('change', (e) => {
        rangeValue.textContent = `${e} GB`;
    });
};

onDrag();

顺便说一句,range 变量是一个范围输入元素。 e 的推断注释是 event,似乎我无法使用 e.target.value 访问该值。除了将 e 的类型指定为 any 或使用 function() this.value 之外,还有其他方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:0)

Typescript 有一个非常好的和直接的在线文档,可以在 here 上找到。

一般来说,类型是通过在后面传递一个冒号和变量类型来注释的。事件“change”和“input”都输入为InputEvent。您的代码将如下所示:

    range.addEventListener('change', (e: InputEvent) => {
        rangeValue.textContent = `${e.data} GB`;
    });