---
name: "typeName"
type: command
status: ok
groups: ["Variables"]
arma3_since: "0.50"
locality: {"argument": null, "effect": null, "server_exec": false}
source: https://community.bistudio.com/wiki/typeName
revid: 379033
updated: 2026-09-22T13:56:05Z
---

# typeName

*Command · Variables · Arma 3 v0.50 · introduced in Armed Assault v1.00*

## Description

Returns the Data Type of an expression.

The type is returned as on of the following all-uppercase strings:
- "[ARRAY](../topics/Array.md)"
- "[BOOL](../topics/Boolean.md)"
- "[CODE](../topics/Code.md)"
- "[CONFIG](../topics/Config.md)"
- "[CONTROL](../topics/Control.md)"
- "[DISPLAY](../topics/Display.md)"
- "[GROUP](../topics/Group.md)"
- "[OBJECT](../topics/Object.md)"
- "[SCALAR](../topics/Number.md)" (and "[NaN](../topics/Number.md)")
- "[SCRIPT](../topics/Script_Handle.md)"
- "[SIDE](../topics/Side.md)"
- "[STRING](../topics/String.md)"
- "[TEXT](../topics/Structured_Text.md)"
- Armed Assault v1.08 "[LOCATION](../topics/Location.md)"
- Arma 2 v1.00 "[TEAM_MEMBER](../topics/Team_Member.md)"
- Arma 2 v1.00 "[NAMESPACE](../topics/Namespace.md)"
- Arma 2 v1.00 "[DIARY_RECORD](../topics/Diary_Record.md)"
- Arma 2 v1.00 "[TASK](../topics/Task.md)"
- Arma 3 v2.02 "[HASHMAP](../topics/HashMap.md)"
- Arma 3 v2.24 "NetObject"
They represent the available Data Types in Arma.

> [!NOTE]
> **Arma 3:** For type comparison, use [isEqualType](../commands/isEqualType.md) command instead.

## Syntax

```sqf
typeName anything
```

**Parameters:**

- `anything`: [Anything](../topics/Anything.md)

**Returns:** [String](../topics/String.md)

## Examples

### Example 1

```sqf
_msg = "hello"; _result = typeName _msg;  //_result will be "STRING"
```

### Example 2

```sqf
_unit = player; _result = typeName _unit; //_result becomes "OBJECT"
```

### Example 3

Values representing direct Data Types:

```sqf
hint typeName 0;                    // SCALAR
hint typeName 1e39;                    // NaN
hint typeName "";                    // STRING
hint typeName true;                    // BOOL
hint typeName [];                    // ARRAY
hint typeName {};                    // CODE
hint typeName scriptNull;            // SCRIPT (since Arma 3 v1.32)
hint typeName objNull;                // OBJECT
hint typeName grpNull;                // GROUP
hint typeName controlNull;            // CONTROL
hint typeName teamMemberNull;        // TEAM_MEMBER (since Arma 2 v1.00)
hint typeName displayNull;            // DISPLAY
hint typeName taskNull;                // TASK (since Arma 2 v1.00)
hint typeName locationNull;            // LOCATION
hint typeName sideUnknown;            // SIDE
hint typeName text "";                // TEXT
hint typeName configFile;            // CONFIG
hint typeName configNull;            // CONFIG (since Arma 3 v1.54)
hint typeName missionNamespace;        // NAMESPACE
hint typeName diaryRecordNull;        // DIARY_RECORD (since Arma 3 v2.00)
hint typeName createHashMap;        // HASHMAP (since Arma 3 v2.02)
hint typeName netObjNull;            // NetObject (works as intended since Arma 3 v2.24)
```

### Example 4

```sqf
if (typeName _this != "ARRAY") exitWith { hint "_this is not an array!" };
// is the same as
if (typeName _this != typeName []) exitWith { hint "_this is not an array!" };
// same result but faster in Arma 3
if !(_this isEqualType []) exitWith { hint "_this is not an array!" };
```

## See also

[isEqualTypeAll](../commands/isEqualTypeAll.md) · [isEqualType](../commands/isEqualType.md) · [isEqualTypeParams](../commands/isEqualTypeParams.md) · [isEqualTypeArray](../commands/isEqualTypeArray.md) · [isEqualTypeAny](../commands/isEqualTypeAny.md) · [typeOf](../commands/typeOf.md) · [isKindOf](../commands/isKindOf.md) · [isClass](../commands/isClass.md) · [isArray](../commands/isArray.md) · [isNumber](../commands/isNumber.md) · [isText](../commands/isText.md) · [isNil](../commands/isNil.md) · [isNull](../commands/isNull.md)

## Community notes

**Killzone_Kid** — 2016-09-25

[typeName](../commands/typeName.md) of [nil](../commands/nil.md) is `ANY`, however this is not possible to test as script command is just ignored when any argument is [nil](../commands/nil.md).

<sub>Source: [BI Community Wiki — typeName](https://community.bistudio.com/wiki/typeName) (revision 379033).</sub>
