2013-02-01 145 views
2

價值的最新更新之前,我寫例如使用DOM元素

<input type="text" id="link"> 
<p> {{variable}} </p> 
// other code 
var input = query('#link'); 
var variable = input.value; 

這段代碼的代碼仍然可以工作,但任何人都知道爲什麼編輯報道這條消息這個片段?

"value" in not a member of Element 

回答

4

達特編輯報道說,因爲它認爲input變量是Element一個實例。爲什麼?因爲query()總是返回一個元素,但編輯器無法知道的,它是一個輸入(類型爲InputElement)。

您可以忽略該警告。該IDE就不能知道查詢結果是InputElement,除非你告訴它:

InputElement input = query('#link'); 

或我認爲這也適用:

var input = query('input#link'); 

如果你真的想告訴達特運行您希望變量具有某種類型,您可以使用演員操作符:as。這具有通知編輯器預期類型的​​優點,並且如果變量不是預期類型,它也會引發錯誤。

var input = query('#link') as InputElement; 

注意,DoubleClick是一個動態的語言,所以我告誡不要使用as除非你認爲其他開發商可能會搞不清楚你的意圖。

+0

感謝您的解釋。無論如何,你是對的。 –