# InterfaceDeclaration

Create a TypeScript interface declaration.

* jsx

  ```tsx
  import { InterfaceDeclaration } from "@alloy-js/typescript";


  <InterfaceDeclaration
    extends={Children}
    typeParameters={TypeParameterDescriptor[] | string[]}
   />
  ```

* stc

  ```ts
  import { InterfaceDeclaration } from "@alloy-js/typescript/stc";


  InterfaceDeclaration({
    extends: Children,
    typeParameters: TypeParameterDescriptor[] | string[],
  }).children(children)
  ```

## Props

|                |                                                                                         |                                               |
| -------------- | --------------------------------------------------------------------------------------- | --------------------------------------------- |
| extends        | optional[Children](../../../core/types/children/)                                       |                                               |
| typeParameters | optional[TypeParameterDescriptor](../../types/typeparameterdescriptor/)\[] \| string\[] | The generic type parameters of the interface. |

## Remarks

This component will declare a symbol for this interface. The `export` and `default` boolean props determine whether and how this symbol is exported from the package.
