Skip to content

ClassDeclaration

Create a TypeScript class declaration.

import { ClassDeclaration } from "@alloy-js/typescript";
<ClassDeclaration extends={Children} implements={Children[]} />
extendsoptional Children
implementsoptional Children[]
const myPetRefkey = refkey();
const Animal = refkey();
const staticMember = refkey();
const instanceMember = refkey();

<ClassDeclaration name="Animal" refkey={Animal}>
  <ClassMember public static name="something" type="string" refkey={staticMember}>
    "hello"
  </ClassMember>
  <ClassMember public name="kind" type="string" />
  <ClassMember public name="name" type="string" refkey={instanceMember} />
  <ClassConstructor parameters="name: string">
    this.name = name;
  </ClassConstructor>
</ClassDeclaration>

<VarDeclaration const name="myPet" refkey={myPetRefkey}>
  new {Animal}();
</VarDeclaration>

{staticMember}; // Animal.something
<MemberReference path={[myPetRefkey, instanceMember]} /> // myPet.name
{memberRefkey(myPetRefkey, instanceMember)}