Single-class-per-file C# to TypeScript generator
! Due to lack of time and the need to do other things, I had to leave this project. Please find more information here.
Project's website: http://jburzynski.net/TypeGen
Complete documentation: http://typegen.readthedocs.io
-
Add TypeGen NuGet package to your project. If you wish to use TypeGen as a .NET Core CLI tool, you'll need to install it from this package
-
Mark your C# classes/enums as exportable to TypeScript:
// with attributes
[ExportTsClass]
public class ProductDto
{
public decimal Price { get; set; }
public string[] Tags { get; set; }
}
// or with a generation spec (created anywhere in your project)
public class MyGenerationSpec : GenerationSpec
{
public MyGenerationSpec()
{
AddClass<ProductDto>();
}
}
- If you're using a generation spec, create a file named
tgconfig.json
directly in your project folder and place the following content there:
{
"generationSpecs": ["MyGenerationSpec"]
}
- Build your project and type
TypeGen generate
orTypeGen -p "MyProjectName" generate
(depending on the current working directory of the PM Console) into the Package Manager Console (you might need to restart Visual Studio), ordotnet typegen generate
in the system console if you're using TypeGen .NET Core CLI tool.
After completing the steps described above, a single TypeScript file (named product-dto.ts) will be generated in your project directory. The file will look like this:
export class ProductDto {
price: number;
tags: string[];
}
Some of TypeGen's features include:
- generating TypeScript classes, interfaces and enums - single class per file
- generating barrel (index) files
- support for collection (or nested collection) types
- generic classes/types generation
- support for inheritance
- customizable convertion between C#/TypeScript names (naming conventions)
For a complete list of features with examples, please refer to the project's documentation: http://typegen.readthedocs.io