我正在尝试在类型记录中实例化新的HTMLDivElement
var elem = new HTMLDivElement();
但是浏览器抛出
Uncaught TypeError: Illegal constructor.
解决办法似乎是使用
var elem = document.createElement('div');
但我觉得这不太理想是因为各种原因。
当有一个DOM元素时,为什么不能直接实例化DOM元素?新中的关键字for inlib.d.ts?
declare var HTMLDivElement: {
prototype: HTMLDivElement;
new (): HTMLDivElement;
}
表上基本上有三种选择:
instanceof
是右操作数。这是不可取的,因为您确实更希望捕获错误,在这些错误中,有人意外地编写了代码x instanceof foo
而不是x instanceof Foo
(在哪里foo
是Foo
)instanceof
检查就位。这很糟糕,因为foo instanceof HTMLElement
写起来很合理。不能使用普通构造函数构造DOM元素,因为您应该通过document.createElement
。
您将类型转换语法与c#语法错误。
只是替换
var elem = new HTMLDivElement();
宽度设置
var elem = document.createElement('div');
或
var elem = <HTMLDivElement>(document.createElement('div'));
(如果需要使用HTMLDivElement属性)