Describes a kind of value.
To style your document, you need to work with values of different kinds: Lengths specifying the size of your elements, colors for your text and shapes, and more. Typst categorizes these into clearly defined types and tells you where it expects which type of value.
Apart from basic types for numeric values and typical types known from programming languages, Typst provides a special type for content. A value of this type can hold anything that you can enter into your document: Text, elements like headings and shapes, and style information.
#let x = 10 #if type(x) == int [ #x is an integer! ] else [ #x is another value... ] An image is of type #type(image("glacier.jpg")).
The type of
int. Now, what is the type of
int or even
#type(int) \ #type(type)
In Typst 0.7 and lower, the
type function returned a string instead of a type. Compatibility with the old way will remain for a while to give package authors time to upgrade, but it will be removed at some point.
- Checks like
int == "integer"evaluate to
- Adding/joining a type and string will yield a string
inoperator on a type and a dictionary will evaluate to
trueif the dictionary has a string key matching the type's name
ConstructorIf a type has a constructor, you can call it like a function to create a new value of the type.
Determines a value's type.
#type(12) \ #type(14.7) \ #type("hello") \ #type(<glacier>) \ #type([Hi]) \ #type(x => x + 1) \ #type(type)
valueanyRequiredPositionalPositional parameters are specified in order, without names.
The value whose type's to determine.