2017-07-11 14 views
0

現在TypeScriptを学習していますが、この問題を正しく解決する方法がわかりません。私は「ノード」インタフェース宣言とスタイルプロパティが欠落しているチェックしてTypeScriptノード要素にスタイルを適用

function styleElement(unstyled: HTMLElement) { 
    const styled = unstyled.cloneNode(); // styleElement should be a pure function 
    styled.style = { opacity: 0 }; // TypeScript says: Property 'style' does not exist on type 'Node'. 

    return styled; 
} 

:私はこのように私のスタイリング関数に引数として与えられたのHTMLElementのスタイルにしたいです。私が知っている限り、それはW3C仕様に記述されていますが、Nodeにはスタイルプロパティはありません。しかし、この制限で私の問題をどのように解決できますか?

"HTMLElement"のスタイルプロパティを上書きすると読み込みエラーが発生しますが、これも奇妙です。

ありがとうございました!

答えて

1

あなたはキャストすることができます:

function styleElement(unstyled: HTMLElement) { 
    const styled = unstyled.cloneNode() as HTMLElement; 
    styled.style = { opacity: 0 }; // Now works properly. 
    // Although styled.style.opacity = 0; would have been preferable 

    return styled; 
}
+1

あなたはstyled.style' 'に新しいオブジェクトを割り当てることはできません。それは動作しません。 'styled.style.opacity =" 0 "'はどのように割り当てられるべきかです。 – Saravana

+0

はい、このエラーに直面しています。個々の課題にスタイルの各プロパティを割り当てる必要がありますか? –

+2

@OleBläsingはObject.assignを見ています... –

関連する問題