The following table lists the words that the Dart language reserves for its own use. These words can't be used as identifiers unless otherwise noted. Even when allowed, using keywords as identifiers can confuse other developers reading your code and should be avoided. To learn more about identifier usage, click on the term.

abstract 2as 2assertasync 3
await 1base 3breakcase
catchclassconstcontinue
covariant 2defaultdeferred 2do
dynamic 2elseenumexport 2
extendsextension 2external 2factory 2
falsefinal (var)final (class)finally
forFunction 2get 2hide 3
ifimplements 2import 2in
interface 2islate 2library 2
mixin 2newnullof 3
on 3operator 2part 2required 2
rethrowreturnsealed 3set 2
show 3static 2superswitch
sync 3thisthrowtrue
trytype 2typedef 2var
voidwhen 3withwhile
yield 1

 1 This keyword can be used as an identifier depending on context.

 2 This keyword can't be used as the name of a type (a class, a mixin, an enum, an extension type, or a type alias), the name of an extension, or as an import prefix. It can be used as an identifier in all other circumstances.

 3 This keyword can be used as an identifier without restriction.