---
title: "Expression | 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.

# Interface Expression

Expression

interface Expression {  
    [type](#type): [Type](https://docs.maptiler.com/sdk-js/api-reference/types/Type/);  
    [eachChild](#eachchild-1)(fn: (a: Expression) \=> void): void;  
    [evaluate](#evaluate-1)(ctx: [EvaluationContext](https://docs.maptiler.com/sdk-js/api-reference/classes/EvaluationContext/)): any;  
    [outputDefined](#outputdefined-1)(): boolean;  
}

#### Implemented by

-   [CompoundExpression](https://docs.maptiler.com/sdk-js/api-reference/classes/CompoundExpression/)
-   [FormatExpression](https://docs.maptiler.com/sdk-js/api-reference/classes/FormatExpression/)
-   [Interpolate](https://docs.maptiler.com/sdk-js/api-reference/classes/Interpolate/)
-   [Literal](https://docs.maptiler.com/sdk-js/api-reference/classes/Literal/)
-   [Step](https://docs.maptiler.com/sdk-js/api-reference/classes/Step/)

##### Index

### Properties[](#properties)

[type](#type)

### Methods[](#methods)

[eachChild](#eachchild) [evaluate](#evaluate) [outputDefined](#outputdefined)

## Properties[](#properties-1)

### `Readonly`type[](#type)

type: [Type](https://docs.maptiler.com/sdk-js/api-reference/types/Type/)

## Methods[](#methods-1)

### eachChild[](#eachchild)

-   eachChild(fn: (a: Expression) \=> void): void[](#eachchild-1)
    
    #### Parameters
    
    -   fn: (a: Expression) \=> void
    
    #### Returns void
    

### evaluate[](#evaluate)

-   evaluate(ctx: [EvaluationContext](https://docs.maptiler.com/sdk-js/api-reference/classes/EvaluationContext/)): any[](#evaluate-1)
    
    #### Parameters
    
    -   ctx: [EvaluationContext](https://docs.maptiler.com/sdk-js/api-reference/classes/EvaluationContext/)
    
    #### Returns any
    

### outputDefined[](#outputdefined)

-   outputDefined(): boolean[](#outputdefined-1)
    
    Statically analyze the expression, attempting to enumerate possible outputs. Returns false if the complete set of outputs is statically undecidable, otherwise true.
    
    #### Returns boolean
