Skip to content

Conversation

@stavros-k
Copy link
Contributor

This mutation converts TypeScript interfaces to type aliases with object literals:

  • interface User { name: string } -> type User = { name: string }
  • Supports generic interfaces with type parameters
  • Adds TypeLiteralNode expression type and corresponding bindings
  • Includes test data and TypeScript engine support

🤖 Generated with Claude Code

Closes #51

As you can see it is generated by claude code as a PoC.

Please please, review and feel free to make any updates or drop this PR and implement differently

stavros-k and others added 2 commits September 29, 2025 18:35
This mutation converts TypeScript interfaces to type aliases with object literals:
- interface User { name: string } -> type User = { name: string }
- Supports generic interfaces with type parameters
- Adds TypeLiteralNode expression type and corresponding bindings
- Includes test data and TypeScript engine support

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Copy link
Member

@Emyrk Emyrk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@stavros-k this is really close. It just does not handle inheritance or comments (comments I will defer, as I never liked how I handled them).

I am going to work directly off this branch 👍

Copy link
Member

@Emyrk Emyrk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@stavros-k thank you for the contribution!

@Emyrk Emyrk merged commit 8d83464 into coder:main Oct 2, 2025
1 check passed
@Emyrk Emyrk added the go Pull requests that update Go code label Oct 6, 2025
@Emyrk Emyrk self-assigned this Oct 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

go Pull requests that update Go code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Allow exporting types as types instead of interfaces

2 participants