# Typing in Psalm Psalm is able to interpret all PHPDoc type annotations, and use them to further understand the codebase. Types are used to describe acceptable values for properties, variables, function parameters and `return $x`. ## Docblock Type Syntax Psalm allows you to express a lot of complicated type information. [See this guide](docblock_type_syntax.md) for a detailed list of supported types. ## Property declaration types vs Assignment typehints You can use the `/** @var Type */` docblock to annotate both [property declarations](http://php.net/manual/en/language.oop5.properties.php) and to help Psalm understand variable assignment. ### Property declaration types You can specify a particular type for a class property declarion in Psalm by using the `@var` declaration: ```php foo = $some_variable;`, Psalm will check to see whether `$some_variable` is either `string` or `null` and, if neither, emit an issue. If you leave off the property type docblock, Psalm will emit a `MissingPropertyType` issue. ### Assignment typehints Consider the following code: ```php