# Devzeebo Bifrost Typescript

> Types

- Skill: `tomevault-io/devzeebo-bifrost-typescript` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/devzeebo-bifrost-typescript`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/devzeebo-bifrost-typescript/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/devzeebo-bifrost-typescript

---


# Types

Explicit types are necessary. Always use explicitly defined types and avoid
anonymous types when possible. Only use interfaces when for module augmentation.
Otherwise, use `type` definitions since they can be composed via discriminated
unions. DO NOT write classes, ever. Instead of a class, write a type and export
functions that take an instance of that type as the _last_ argument (fp style).

```typescript
// GOOD
export type MyTypeName = {
  prop: string;
  value: int;

  nestedThings: NestedType[];
};

export type NestedType = {
  id: string;
};
```

```typescript
// BAD
export interface MyTypeName { // interface instead of type
  prop: string;
  value: int;

  nestedThings Array<{ // anonymous type
    id: string;
  }>;
};
```

# Functions

Always use `const fn = () => {}` definitions over `function fn() {}`
definitions unless you use `this` within the function. Always prefer
"fp style" function declarations; args first data last. This is more
composable.

---
> Source: [devzeebo/bifrost](https://github.com/devzeebo/bifrost) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-06-27 -->

