Flutter meta 关键字

891 阅读3分钟

官方库包

meta library - Dart API

开发人员可以用来表达意图的注释,否则无法通过静态分析源代码来推论这些意图。

另请参见 dart:core 库中的 @deprecated@override

注释提供了语义信息,工具可以使用这些语义信息来提供更好的用户体验。例如,IDE 可能不会自动完成标记为 @deprecated 的函数的名称,或者它可能以不同的方式显示该函数的名称。

有关安装和导入该库的信息,请参见pub.dev上的meta包。有关使用注释的示例,请参阅语言导览中的元数据。

关键字

alwaysThrows → const _AlwaysThrows

Used to annotate a function f. Indicates that f always throws an exception. Any functions that override f, in class inheritance, are also expected to conform to this contract. [...]const _AlwaysThrows()

checked → const _Checked

Used to annotate a parameter of an instance method that overrides another method. [...] @Deprecated('Use the covariant modifier instead') const _Checked()

doNotStore → const _DoNotStore

Used to annotate a method, getter or top-level getter or function to indicate that the value obtained by invoking it should not be stored in a field or top-level variable. The annotation can also be applied to a class to implicitly annotate all of the valid members of the class, or applied to a library to annotate all of the valid members of the library, including classes. If a value returned by an element marked as doNotStore is returned from a function or getter, that function or getter should be similarly annotated. [...]const _DoNotStore()

experimental → const _Experimental

Used to annotate a library, or any declaration that is part of the public interface of a library (such as top-level members, class members, and function parameters) to indicate that the annotated API is experimental and may be removed or changed at any-time without updating the version of the containing package, despite the fact that it would otherwise be a breaking change. [...]const _Experimental()

工厂 factory → const _Factory

Used to annotate an instance or static method m. Indicates that m must either be abstract or must return a newly allocated object or null. In addition, every method that either implements or overrides m is implicitly annotated with this same annotation. [...]const _Factory()

immutable → const Immutable

Used to annotate a class C. Indicates that C and all subtypes of C must be immutable. [...]const [Immutable](<https://pub.dev/documentation/meta/latest/meta/Immutable/Immutable.html>)()

internal → const _Internal

Used to annotate a declaration which should only be used from within the package in which it is declared, and which should not be exposed from said package's public API. [...]const _Internal()

isTest → const _IsTest

Used to annotate a test framework function that runs a single test. [...]const _IsTest()

isTestGroup → const _IsTestGroup

Used to annotate a test framework function that runs a group of tests. [...]const _IsTestGroup()

literal → const _Literal

Used to annotate a const constructor c. Indicates that any invocation of the constructor must use the keyword const unless one or more of the arguments to the constructor is not a compile-time constant. [...]const _Literal()

强制重写 mustCallSuper → const _MustCallSuper

Used to annotate an instance method m. Indicates that every invocation of a method that overrides m must also invoke m. In addition, every method that overrides m is implicitly annotated with this same annotation. [...]const _MustCallSuper()

nonVirtual → const _NonVirtual

Used to annotate an instance member (method, getter, setter, operator, or field) m in a class C or mixin M. Indicates that m should not be overridden in any classes that extend or mixin C or M[...]const _NonVirtual()

optionalTypeArgs → const _OptionalTypeArgs

Used to annotate a class, mixin, or extension declaration C. Indicates that any type arguments declared on C are to be treated as optional. Tools such as the analyzer and linter can use this information to suppress warnings that would otherwise require type arguments on C to be provided.const _OptionalTypeArgs()

保护 protected → const _Protected

Used to annotate an instance member (method, getter, setter, operator, or field) m in a class C. If the annotation is on a field it applies to the getter, and setter if appropriate, that are induced by the field. Indicates that m should only be invoked from instance methods of C or classes that extend, implement or mix in C, either directly or indirectly. Additionally indicates that m should only be invoked on this, whether explicitly or implicitly. [...]const _Protected()

required → const Required

Used to annotate a named parameter p in a method or function f. Indicates that every invocation of f must include an argument corresponding to p, despite the fact that p would otherwise be an optional parameter. [...]const [Required](<https://pub.dev/documentation/meta/latest/meta/Required/Required.html>)()

sealed → const _Sealed

Annotation marking a class as not allowed as a super-type. [...]const _Sealed()

virtual → const _Virtual

Used to annotate a field that is allowed to be overridden in Strong Mode. [...] @Deprecated('No longer has meaning') const _Virtual()

visibleForOverriding → const _VisibleForOverriding

Used to annotate an instance member that was made public so that it could be overridden but that is not intended to be referenced from outside the defining library. [...]const _VisibleForOverriding()

visibleForTesting → const _VisibleForTesting

Used to annotate a declaration that was made public, so that it is more visible than otherwise necessary, to make code testable. [...]const _VisibleForTesting()