2

在最新更新之前,我编写了这段代码,例如

<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

1 回答 1

4

Dart 编辑器报告说,因为它认为input变量是Element. 为什么?因为query()总是返回一个元素,但编辑器不知道在你的情况下,它是一个输入(类型InputElement)。

您可以忽略警告。IDE 无法知道查询的结果是InputElement,除非您告诉它:

InputElement input = query('#link');

或者我认为这也有效:

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

如果你真的想告诉 Dart 运行时你期望一个变量是某种类型,你可以使用 cast 操作符:as。这样做的好处是通知编辑器期望的类型,如果变量不是期望的类型,它也会抛出错误。

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

请注意,Dart 是一种动态语言,因此我告诫不要使用as,除非您认为其他开发人员可能会对您的意图感到困惑。

于 2013-02-01T13:13:40.937 回答