types
¶
Added in version 3.13: The types
tag was added in Twig 3.13. This tag is experimental and
can change based on usage and feedback.
Use the types
tag to declare the type of a variable:
{% types is_correct: 'boolean' %}
{% types score: 'number' %}
Or multiple variables:
{% types
is_correct: 'boolean',
score: 'number',
%}
You can also enclose types with {}
:
{% types {
is_correct: 'boolean',
score: 'number',
} %}
Declare optional variables by adding a ?
suffix:
{% types {
is_correct: 'boolean',
score?: 'number',
} %}
By default, this tag does not affect the template compilation or runtime behavior.
Its purpose is to enable designers and developers to document and specify the context’s available and/or required variables. While Twig itself does not validate variables or their types, this tag enables extensions to do this.
Additionally, Twig extensions can analyze these tags to perform compile-time and runtime analysis of templates.
Note
The types declared in a template are local to that template and must not be propagated to included templates. This is because a template can be included from multiple different places, each potentially having different variable types.
Note
The syntax for and contents of type strings are intentionally left out of scope.