---
title: "ExpressionSpecification | JavaScript maps SDK"
description: "Documentation for MapTiler SDK"
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Type Alias ExpressionSpecification

ExpressionSpecification:  
    | \["array", ExpressionSpecification\]  
    | \["array", "string" | "number" | "boolean", ExpressionSpecification\]  
    | \[  
        "array",  
        "string"  
        | "number"  
        | "boolean",  
        number,  
        ExpressionSpecification,  
    \]  
    | \[  
        "boolean",  
        unknown  
        | ExpressionSpecification,  
        ...(unknown | ExpressionSpecification)\[\],  
    \]  
    | [CollatorExpressionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/CollatorExpressionSpecification/)  
    | \[  
        "format",  
        ...(  
            | string  
            | \["image", ExpressionSpecification\]  
            | ExpressionSpecification  
            | {  
                "font-scale"?: number | ExpressionSpecification;  
                "text-color"?: [ColorSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ColorSpecification/) | ExpressionSpecification;  
                "text-font"?: ExpressionSpecification;  
                "vertical-align"?: "bottom" | "center" | "top";  
            }  
        )\[\],  
    \]  
    | \["image", string | ExpressionSpecification\]  
    | \["literal", unknown\]  
    | \[  
        "number",  
        unknown  
        | ExpressionSpecification,  
        ...(unknown | ExpressionSpecification)\[\],  
    \]  
    | \[  
        "number-format",  
        number  
        | ExpressionSpecification,  
        {  
            currency?: string | ExpressionSpecification;  
            locale?: string | ExpressionSpecification;  
            "max-fraction-digits"?: number | ExpressionSpecification;  
            "min-fraction-digits"?: number | ExpressionSpecification;  
        },  
    \]  
    | \[  
        "number-format",  
        number  
        | ExpressionSpecification,  
        {  
            locale?: string | ExpressionSpecification;  
            "max-fraction-digits"?: number | ExpressionSpecification;  
            "min-fraction-digits"?: number | ExpressionSpecification;  
            unit?: string | ExpressionSpecification;  
        },  
    \]  
    | \[  
        "object",  
        unknown  
        | ExpressionSpecification,  
        ...(unknown | ExpressionSpecification)\[\],  
    \]  
    | \[  
        "string",  
        unknown  
        | ExpressionSpecification,  
        ...(unknown | ExpressionSpecification)\[\],  
    \]  
    | \["to-boolean", unknown | ExpressionSpecification\]  
    | \[  
        "to-color",  
        unknown  
        | ExpressionSpecification,  
        ...(unknown | ExpressionSpecification)\[\],  
    \]  
    | \[  
        "to-number",  
        unknown  
        | ExpressionSpecification,  
        ...(unknown | ExpressionSpecification)\[\],  
    \]  
    | \["to-string", unknown | ExpressionSpecification\]  
    | \["typeof", unknown | ExpressionSpecification\]  
    | \["accumulated"\]  
    | \["feature-state", string | ExpressionSpecification\]  
    | \["geometry-type"\]  
    | \["id"\]  
    | \["line-progress"\]  
    | \["properties"\]  
    | \["at", number | ExpressionSpecification, ExpressionSpecification\]  
    | \["get", string | ExpressionSpecification, ExpressionSpecification?\]  
    | \["global-state", string\]  
    | \["has", string | ExpressionSpecification, ExpressionSpecification?\]  
    | \[  
        "in",  
        null  
        | [ExpressionInputType](https://docs.maptiler.com/sdk-js/api-reference/types/ExpressionInputType/)  
        | ExpressionSpecification,  
        string | ExpressionSpecification,  
    \]  
    | \[  
        "index-of",  
        null  
        | [ExpressionInputType](https://docs.maptiler.com/sdk-js/api-reference/types/ExpressionInputType/)  
        | ExpressionSpecification,  
        string | ExpressionSpecification,  
        (number | ExpressionSpecification)?,  
    \]  
    | \["length", string | ExpressionSpecification\]  
    | \[  
        "slice",  
        string  
        | ExpressionSpecification,  
        number | ExpressionSpecification,  
        (number | ExpressionSpecification)?,  
    \]  
    | \["!", boolean | ExpressionSpecification\]  
    | \[  
        "!=",  
        null  
        | [ExpressionInputType](https://docs.maptiler.com/sdk-js/api-reference/types/ExpressionInputType/)  
        | ExpressionSpecification,  
        null | [ExpressionInputType](https://docs.maptiler.com/sdk-js/api-reference/types/ExpressionInputType/) | ExpressionSpecification,  
        ([CollatorExpressionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/CollatorExpressionSpecification/) | [VariableExpressionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/VariableExpressionSpecification/))?,  
    \]  
    | \[  
        "<",  
        string  
        | number  
        | ExpressionSpecification,  
        string | number | ExpressionSpecification,  
        ([CollatorExpressionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/CollatorExpressionSpecification/) | [VariableExpressionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/VariableExpressionSpecification/))?,  
    \]  
    | \[  
        "<=",  
        string  
        | number  
        | ExpressionSpecification,  
        string | number | ExpressionSpecification,  
        ([CollatorExpressionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/CollatorExpressionSpecification/) | [VariableExpressionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/VariableExpressionSpecification/))?,  
    \]  
    | \[  
        "==",  
        null  
        | [ExpressionInputType](https://docs.maptiler.com/sdk-js/api-reference/types/ExpressionInputType/)  
        | ExpressionSpecification,  
        null | [ExpressionInputType](https://docs.maptiler.com/sdk-js/api-reference/types/ExpressionInputType/) | ExpressionSpecification,  
        ([CollatorExpressionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/CollatorExpressionSpecification/) | [VariableExpressionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/VariableExpressionSpecification/))?,  
    \]  
    | \[  
        ">",  
        string  
        | number  
        | ExpressionSpecification,  
        string | number | ExpressionSpecification,  
        ([CollatorExpressionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/CollatorExpressionSpecification/) | [VariableExpressionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/VariableExpressionSpecification/))?,  
    \]  
    | \[  
        ">=",  
        string  
        | number  
        | ExpressionSpecification,  
        string | number | ExpressionSpecification,  
        ([CollatorExpressionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/CollatorExpressionSpecification/) | [VariableExpressionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/VariableExpressionSpecification/))?,  
    \]  
    | \["all", ...(boolean | ExpressionSpecification)\[\]\]  
    | \["any", ...(boolean | ExpressionSpecification)\[\]\]  
    | \[  
        "case",  
        boolean  
        | ExpressionSpecification,  
        null | [ExpressionInputType](https://docs.maptiler.com/sdk-js/api-reference/types/ExpressionInputType/) | ExpressionSpecification,  
        ...(boolean | null | [ExpressionInputType](https://docs.maptiler.com/sdk-js/api-reference/types/ExpressionInputType/) | ExpressionSpecification)\[\],  
        null | [ExpressionInputType](https://docs.maptiler.com/sdk-js/api-reference/types/ExpressionInputType/) | ExpressionSpecification,  
    \]  
    | \["coalesce", ...([ExpressionInputType](https://docs.maptiler.com/sdk-js/api-reference/types/ExpressionInputType/) | ExpressionSpecification)\[\]\]  
    | \[  
        "match",  
        string  
        | number  
        | ExpressionSpecification,  
        string | number | string\[\] | number\[\],  
        null | [ExpressionInputType](https://docs.maptiler.com/sdk-js/api-reference/types/ExpressionInputType/) | ExpressionSpecification,  
        ...(  
            | string  
            | number  
            | string\[\]  
            | number\[\]  
            | null  
            | [ExpressionInputType](https://docs.maptiler.com/sdk-js/api-reference/types/ExpressionInputType/)  
            | ExpressionSpecification  
        )\[\],  
        null  
        | [ExpressionInputType](https://docs.maptiler.com/sdk-js/api-reference/types/ExpressionInputType/)  
        | ExpressionSpecification,  
    \]  
    | \["within", [GeoJSON](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GeoJSON/)\]  
    | \[  
        "interpolate",  
        [InterpolationSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/InterpolationSpecification/),  
        number  
        | ExpressionSpecification,  
        ...(  
            | number  
            | [ColorSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ColorSpecification/)  
            | ExpressionSpecification  
            | [ProjectionDefinitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ProjectionDefinitionSpecification/)  
        )\[\],  
    \]  
    | \[  
        "interpolate-hcl",  
        [InterpolationSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/InterpolationSpecification/),  
        number  
        | ExpressionSpecification,  
        ...(number | [ColorSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ColorSpecification/) | ExpressionSpecification)\[\],  
    \]  
    | \[  
        "interpolate-lab",  
        [InterpolationSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/InterpolationSpecification/),  
        number  
        | ExpressionSpecification,  
        ...(number | [ColorSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ColorSpecification/) | ExpressionSpecification)\[\],  
    \]  
    | \[  
        "step",  
        number  
        | ExpressionSpecification,  
        [ExpressionInputType](https://docs.maptiler.com/sdk-js/api-reference/types/ExpressionInputType/) | ExpressionSpecification,  
        ...(number | [ExpressionInputType](https://docs.maptiler.com/sdk-js/api-reference/types/ExpressionInputType/) | ExpressionSpecification)\[\],  
    \]  
    | \[  
        "let",  
        string,  
        [ExpressionInputType](https://docs.maptiler.com/sdk-js/api-reference/types/ExpressionInputType/)  
        | ExpressionSpecification,  
        ...(string | [ExpressionInputType](https://docs.maptiler.com/sdk-js/api-reference/types/ExpressionInputType/) | ExpressionSpecification)\[\],  
    \]  
    | [VariableExpressionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/VariableExpressionSpecification/)  
    | \["concat", ...([ExpressionInputType](https://docs.maptiler.com/sdk-js/api-reference/types/ExpressionInputType/) | ExpressionSpecification)\[\]\]  
    | \["downcase", string | ExpressionSpecification\]  
    | \["is-supported-script", string | ExpressionSpecification\]  
    | \[  
        "join",  
        string\[\]  
        | ExpressionSpecification,  
        string | ExpressionSpecification,  
    \]  
    | \["resolved-locale", [CollatorExpressionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/CollatorExpressionSpecification/)\]  
    | \[  
        "split",  
        string  
        | ExpressionSpecification,  
        string | ExpressionSpecification,  
    \]  
    | \["upcase", string | ExpressionSpecification\]  
    | \[  
        "rgb",  
        number  
        | ExpressionSpecification,  
        number | ExpressionSpecification,  
        number | ExpressionSpecification,  
    \]  
    | \[  
        "rgba",  
        number  
        | ExpressionSpecification,  
        number | ExpressionSpecification,  
        number | ExpressionSpecification,  
        number | ExpressionSpecification,  
    \]  
    | \["to-rgba", [ColorSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ColorSpecification/) | ExpressionSpecification\]  
    | \[  
        "-",  
        number  
        | ExpressionSpecification,  
        (number | ExpressionSpecification)?,  
    \]  
    | \[  
        "\*",  
        number  
        | ExpressionSpecification,  
        number | ExpressionSpecification,  
        ...(number | ExpressionSpecification)\[\],  
    \]  
    | \["/", number | ExpressionSpecification, number | ExpressionSpecification\]  
    | \["%", number | ExpressionSpecification, number | ExpressionSpecification\]  
    | \["^", number | ExpressionSpecification, number | ExpressionSpecification\]  
    | \["+", ...(number | ExpressionSpecification)\[\]\]  
    | \["abs", number | ExpressionSpecification\]  
    | \["acos", number | ExpressionSpecification\]  
    | \["asin", number | ExpressionSpecification\]  
    | \["atan", number | ExpressionSpecification\]  
    | \["ceil", number | ExpressionSpecification\]  
    | \["cos", number | ExpressionSpecification\]  
    | \["distance", [GeoJSON](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.GeoJSON/)\]  
    | \["e"\]  
    | \["floor", number | ExpressionSpecification\]  
    | \["ln", number | ExpressionSpecification\]  
    | \["ln2"\]  
    | \["log10", number | ExpressionSpecification\]  
    | \["log2", number | ExpressionSpecification\]  
    | \[  
        "max",  
        number  
        | ExpressionSpecification,  
        ...(number | ExpressionSpecification)\[\],  
    \]  
    | \[  
        "min",  
        number  
        | ExpressionSpecification,  
        ...(number | ExpressionSpecification)\[\],  
    \]  
    | \["pi"\]  
    | \["round", number | ExpressionSpecification\]  
    | \["sin", number | ExpressionSpecification\]  
    | \["sqrt", number | ExpressionSpecification\]  
    | \["tan", number | ExpressionSpecification\]  
    | \["zoom"\]  
    | \["heatmap-density"\]  
    | \["elevation"\]  
    | \["global-state", string\]
