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

# Class CompoundExpression

Expression

#### Implements

-   [Expression](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Expression/)

##### Index

### Constructors[](#constructors)

[constructor](#constructor)

### Properties[](#properties)

[args](#args) [name](#name) [type](#type) [definitions](#definitions)

### Methods[](#methods)

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

## Constructors[](#constructors-1)

### constructor[](#constructor)

-   new CompoundExpression(  
        name: string,  
        type: [Type](https://docs.maptiler.com/sdk-js/api-reference/types/Type/),  
        evaluate: [Evaluate](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Evaluate/),  
        args: [Expression](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Expression/)\[\],  
    ): CompoundExpression[](#constructorcompoundexpression)
    
    #### Parameters
    
    -   name: string
    -   type: [Type](https://docs.maptiler.com/sdk-js/api-reference/types/Type/)
    -   evaluate: [Evaluate](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Evaluate/)
    -   args: [Expression](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Expression/)\[\]
    
    #### Returns CompoundExpression
    

## Properties[](#properties-1)

### args[](#args)

args: [Expression](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Expression/)\[\]

### name[](#name)

name: string

### type[](#type)

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

Implementation of [Expression](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Expression/).[type](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Expression/#type)

### `Static`definitions[](#definitions)

definitions: { \[\_: string\]: [Definition](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Definition/) }

## Methods[](#methods-1)

### eachChild[](#eachchild)

-   eachChild(fn: (\_: [Expression](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Expression/)) \=> void): void[](#eachchild-1)
    
    #### Parameters
    
    -   fn: (\_: [Expression](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Expression/)) \=> void
    
    #### Returns void
    
    Implementation of [Expression](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Expression/).[eachChild](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Expression/#eachchild)
    

### evaluate[](#evaluate)

-   evaluate(ctx: [EvaluationContext](https://docs.maptiler.com/sdk-js/api-reference/classes/EvaluationContext/)): [Value](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Value/)[](#evaluate-1)
    
    #### Parameters
    
    -   ctx: [EvaluationContext](https://docs.maptiler.com/sdk-js/api-reference/classes/EvaluationContext/)
    
    #### Returns [Value](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Value/)
    
    Implementation of [Expression](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Expression/).[evaluate](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Expression/#evaluate)
    

### 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
    
    Implementation of [Expression](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Expression/).[outputDefined](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Expression/#outputdefined)
    

### `Static`parse[](#parse)

-   parse(args: readonly unknown\[\], context: [ParsingContext](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.ParsingContext/)): [Expression](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Expression/)[](#parse-1)
    
    #### Parameters
    
    -   args: readonly unknown\[\]
    -   context: [ParsingContext](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.ParsingContext/)
    
    #### Returns [Expression](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Expression/)
    

### `Static`register[](#register)

-   register(  
        registry: [ExpressionRegistry](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.ExpressionRegistry/),  
        definitions: { \[\_: string\]: [Definition](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Definition/) },  
    ): void[](#register-1)
    
    #### Parameters
    
    -   registry: [ExpressionRegistry](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.ExpressionRegistry/)
    -   definitions: { \[\_: string\]: [Definition](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.Definition/) }
    
    #### Returns void
