Skip to content

FunctionDeclaration

A TypeScript function declaration.

import { FunctionDeclaration } from "@alloy-js/typescript";
<FunctionDeclaration
async
default
doc={Children}
export
flags={OutputSymbolFlags}
kind={"type" | "value"}
metadata={Record<string, unknown>}
name="string"
parameters={ParameterDescriptor[] | string[]}
parametersChildren={Children}
refkey={Refkey | Refkey[]}
returnType={Children}
typeParameters={TypeParameterDescriptor[] | string[]}
typeParametersChildren={Children}
>
{children}
</FunctionDeclaration>

Props

asyncoptionalboolean
childrenoptionalChildren
childrenoptionalChildren
defaultoptionalboolean

Whether this is the default export of the module.

docoptionalChildren

Documentation for this declaration

exportoptionalboolean

Whether to export this declaration from the module.

flagsoptionalOutputSymbolFlags

Flags for the symbol created by this component.

kindoptional”type” | “value”

Whether this is a declaration of a type (e.g. interface, type alias) or a value (e.g. var, const, let).

metadataoptionalRecord<string, unknown>

Arbitrary metadata about this declaration.

namestring

The base name of this declaration. May change depending on naming policy and any conflicts.

parametersoptionalParameterDescriptor[] | string[]

The parameters to the function. Can be an array of strings for parameters which don’t have a type or a default value. Otherwise, it’s an array of ParameterDescriptors.

parametersChildrenoptionalChildren

Raw content to be used as the parameter list.

refkeyoptionalRefkey | Refkey[]

The refkey or array of refkeys for this declaration.

returnTypeoptionalChildren

The return type of the function.

typeParametersoptionalTypeParameterDescriptor[] | string[]

The type parameters for the function. Can be an array of strings for type parameters which don’t have any constraints or a default type, otherwise it’s an array of TypeParameterDescriptors.

typeParametersChildrenoptionalChildren

Raw content to be used as the type parameter list.

Remarks

Providing parameters and type parameters can be accomplished in one of three ways:

  1. As an array of ParameterDescriptors or TypeParameterDescriptors.
  2. As raw content via the parametersChildren or typeParametersChildren props.
  3. As a child of this component via the [unresolved link] or [unresolved link] components.