0

次のコードを検討してください。

var yum: HTMLElement;
  var bin: Element;
yum = document.createElement('p');
var y: Node = yum.cloneNode(true);
bin.appendChild(y);

y.style.display = 'none';     //fails Error 2   Cannot convert 'Node' to 'HTMLElement': Type 'Node' is missing property 'click' from type 'HTMLElement'

もちろん、cloneNameはHTMLElementではなくNodeを返すため、これは失敗します。NodeからHTMLElementに手動で変換しようとすると、同じエラーが発生します。不透明度を変更する方法がわからないので、私は立ち往生しました。これが私がTypescriptに移行しようとしていたjavascriptです。

4

1 に答える 1

3

例のように、複製される要素が HTMLElement であることがわかっている場合は、それをキャストできます。

var yum: HTMLElement;
var bin: Element;

yum = document.createElement('p');
var y: HTMLElement = <HTMLElement> yum.cloneNode(true);
bin.appendChild(y);

y.style.display = 'none';

型が明示的である場合、次のように型に注釈を付けないことを選択できます。

var bin: Element;
var yum = document.createElement('p'); // type inferred as createElement returns an HTMLElement
var y = <HTMLElement> yum.cloneNode(true); // type inferred from the cast

bin.appendChild(y);
y.style.display = 'none'; 
于 2013-01-09T16:27:31.863 に答える