使用'as'到getElementsByClassName键入TypeScript set元素

时间:2017-07-17 16:11:45

标签: typescript typescript-typings getelementsbyclassname setfocus

TypeScript非常新,所以我确信我的代码不止一件事。

let htmlOption: HTMLCollection = document.getElementsByClassName(OPTION_SELECTOR);
let selected: HTMLElement = htmlOption[index];
// this throws an error "Initializer type Element is not assignable to variable type HTMLElement
selected.focus();

我很确定这与HTMLCollection的孩子Element而不是HTMLElement这一事实有关。但我需要将注意力集中在HTMLElementElement上不允许)

但以下内容不会引发任何错误:

let htmlOption = (document.getElementsByClassName(OPTION_SELECTOR) as HTMLCollection);
let selected = (htmlOption[index] as HTMLElement);
selected.focus();

我不明白这些是如何不同的。我以为我可以使用varName:type = definition?

声明变量

0 个答案:

没有答案