# `Surface.AST.If`
[🔗](https://github.com/surface-ui/surface/blob/v0.12.3/lib/surface/ast.ex#L202)

An AST node representing an if/else expression

## Properties
    * `:condition` - a quoted expression
    * `:children` - the children to insert into the dom if the condition evaluates truthy
    * `:else` - the children to insert into the dom if the condition evaluates falsy
    * `:meta` - compilation meta data
    * `:debug` - keyword list indicating when debug information should be printed during compilation
    * `:directives` - directives associated with this node

# `t`
[🔗](https://github.com/surface-ui/surface/blob/v0.12.3/lib/surface/ast.ex#L216)

```elixir
@type t() :: %Surface.AST.If{
  children: [Surface.AST.t()],
  condition: Surface.AST.AttributeExpr.t(),
  debug: [atom()],
  directives: [Surface.AST.Directive.t()],
  else: [Surface.AST.t()],
  meta: Surface.AST.Meta.t()
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
