Skip to content

madskristensen/TypeScriptDefinitionGenerator

Repository files navigation

TypeScript Definition Generator

Build status

For Visual Studio 2022:
Download this extension from the Marketplace or get the CI build.

For Visual Studio 2019:
Download this extension from the Marketplace or get the CI build.


Creates and synchronizes TypeScript Definition files (d.ts) from C#/VB model classes to build strongly typed web application where the server- and client-side models are in sync. Works on all .NET project types

See the change log for changes and road map.

For Visual Studio 2015 support, install Web Essentials 2015

From C# to .d.ts file

This extension will automatically generate .d.ts files from any C#/VB file you specify. It will turn the following C# class into a TypeScript interface.

class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    public IEnumerable<string> Tags { get; set; }
}

Becomes this .d.ts file:

declare module server {
	interface customer {
		id: number;
		name: string;
		tags: string[];
	}
}

The generated .d.ts file can then be consumed from your own TypeScript files by referencing server.<typeName> interfaces.

Generate d.ts file from C#/VB

To generate a .d.ts file, right-click any .cs or .vb file and select Generate TypeScript Definition.

Context menu

A .d.ts file is created and nested under the parent C#/VB file.

Nested file

Every time the C#/VB file is modified and saved, the content of the .d.ts file is updated to reflect the changes.

Settings

Configure this extension from the Tools -> Options dialog.

Settings

Contribute

Check out the contribution guidelines if you want to contribute to this project.

For cloning and building this project yourself, make sure to install the Extensibility Tools 2015 extension for Visual Studio which enables some features used by this project.

License

Apache 2.0

About

A Visual Studio extension

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Languages