我在TypeScrip中创建一个HTMLInputElement,通过将输入元素的type
字段设置为"range"
,我打算将其用作"滑块".
根据MDN Web Docs的说法,我可以通过创建HTMLDatalistElement的一个实例,为DataList赋予id
,并通过滑块的list
字段引用DataList的id
,来使这个滑块更受欢迎.这不仅会给我的滑块提供一些刻度标记来指示滑块光标当前所在的位置,而且我还可以设置DataList的HTMLOptionElement的label
字段来引入带标签的刻度标记.
来源:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#adding_labels
但是,Deno/TS-Node报告以下错误:
error: TS2540 [ERROR]: Cannot assign to 'list' because it is a read-only property.
inputElement.list = datalistId;
而谷歌Chrome则抱怨出现了这样的错误:
Uncaught TypeError: Cannot set property list of #<HTMLInputElement> which has only a getter
由于MDN Web文档清楚地显示应使用此字段,因此我try 通过以下方式忽略Deno/TS-Node错误,以使其静默:
// @ts-ignore
此解决方案不起作用,并导致上面的Google Chrome运行时错误.
我不明白为什么在通过.html
文件构造HTMLInputElement时允许设置此字段,但在通过Java脚本/类型脚本动态创建HTMLInputElement的实例时却不允许使用它.能够动态设置滑块的刻度线标签将是非常好的.