A type that holds an expression and an alias for it.

AliasedExpression<T, A> can be used in places where, in addition to the value type T, you also need a name A for that value. For example anything you can pass into the select method needs to implement an AliasedExpression<T, A>. A becomes the name of the selected expression in the result and T becomes its type.

Example

class SomeAliasedExpression<T, A extends string> implements AliasedExpression<T, A> {
#expression: Expression<T>
#alias: A

constructor(expression: Expression<T>, alias: A) {
this.#expression = expression
this.#alias = alias
}

get expression(): Expression<T> {
return this.#expression
}

get alias(): A {
return this.#alias
}

toOperationNode(): AliasNode {
return AliasNode.create(this.#expression.toOperationNode(), IdentifierNode.create(this.#alias))
}
}
interface AliasedExpression<T, A> {
    get alias(): Expression<unknown> | A;
    get expression(): Expression<T>;
    toOperationNode(): kysely.AliasNode;
}

Type Parameters

  • T
  • A extends string

Hierarchy (view full)

Implemented by

Accessors

  • get alias(): Expression<unknown> | A
  • Returns the alias.

    Returns Expression<unknown> | A

  • get expression(): Expression<T>
  • Returns the aliased expression.

    Returns Expression<T>

Methods