首页 / 微软技术 / ASP.NET / 快速将C#类型转成TypeScript介面定义
.NET

快速将C#类型转成TypeScript介面定义

使用 TypeScript 处理 AJAX 请求时,常需要在前端定义与 C# 物件属性一致的 TypeScript 类型,以便将后端传来的 JSON 资料还原成强类型物件。针对较正式的资料模型,我会用 CodeGen 方式同步 C# 与 TypeScript 端的类型定义(顺便处理多语系问题)。但蛮多时候处理对象只是零散的小类型,不必杀鸡用牛刀,针对这类需求,推荐一个好用工具-TypeLITE。

在 NuGet 查关键字”typelite”,很快就可找到 TypeLite 套件。

66372-20160118172058390-650467009

安装后,项目会加入 TypeLite.dll、TypeLIte.Net4.dll,并在 Scripts 目录下新増 TypeLite.Net4.tt。接着就可以修改 TypeLite.Net4.tt 内容,决定为哪些类型产生 TypeScript 定义。

TypeLITE 预设做法是执行 .ForLoadedAssemblies ()自动寻找组件标注[TsClass] Attribute 的类型,但实务上用 .For<类型名称>()列举要转换的类型(如红框所示)比较方便;若类型来自网站项目以外的组件,记得要加上<#@ assembly #>宣告(如黄框所示)。

66372-20160118172327125-622267615

安装后,项目会加入 TypeLite.dll、TypeLIte.Net4.dll,并在 Scripts 目录下新増 TypeLite.Net4.tt。接着就可以修改 TypeLite.Net4.tt 内容,决定为哪些类型产生 TypeScript 定义。

 

TypeLITE 预设做法是执行 .ForLoadedAssemblies ()自动寻找组件标注[TsClass] Attribute 的类型,但实务上用 .For<类型名称>()列举要转换的类型(如红框所示)比较方便;若类型来自网站项目以外的组件,记得要加上<#@ assembly #>宣告(如黄框所示)。

66372-20160118172209843-629903048

TypeScript 定义档仅在开发编译阶段提供强类型约束及提示,不会产生任何 JavaScript,不用担心 TypeLite.Net4.d.ts 的内容太复杂。就这样,轻轻松松几个步骤,就把 C# 端的类型定义搬到 TypeScript 端~



About worksguo

我顶的是太阳,蓝天都在我脚下。我是软件开发者,信息化专家,电子商务专家,金融学者,创业人。长期关注微软技术!

Check Also

.NET开源

.NET开源一年及开源一年后ASP.NET贡献情况分析

这里会以 3 个 .NET 生态系统中最主要的三个部分来说明,这些项目也是 .NET 基金会最活跃/最多 star 和最多 Fork 的项目: Roslyn - .NET 编译平台 ("Roslyn") 提供开源 C# 和 Visual Basic 的编译器,支持富代码分析 APIs。 CoreCLR - .NET Core 运行时,名为 CoreCLR,包括一个基础库 mscorlib。CoreCLR 包括垃圾收集器,JIT 编译器,基础 .NET 数据类型和大量低级别类。CoreFX - .NET Core 函数库,包括集合,文件系统,工作台,XML,异步等等。

ASP.NET Core 1.0

ASP.NET 5已终结,迎来ASP.NET Core 1.0和.NET Core 1.0

ASP.NET 4.6 是个更成熟的平台,经过了很好的测试。 ASP.NET Core 1.0 是 1.0 版本,包括 Web API 和 MVC,但是不包括 SignalR 或者 Web Pages。ASP.NET Core 1.0 不支持 VB 或者 F#。ASP.NET Core 1.0 并不是结束,仅仅是个全新的开始, ASP.NET 4.6 还会继续更新,继续提供完整的支持。

发表评论


x

更多推荐

每一个C#开发者必须知道的13件事情

使用 TypeScript 处理 AJAX 请求时,常需要在前端定义与 C# 物件属性一致的 TypeScript 类型,以便将后端传来的 JSON 资料还原成强类型物件。针对较正式的资料模型,我会用 CodeGen 方式同步 C# 与 TypeScript 端的类型定义(顺便处理多语系问题)。但蛮多时候处理对象只是零散的小类型,不必杀鸡用牛刀,针对这类需求,推荐一个好用工具-TypeLITE。

微软宣布跨平台开发工具Xamarin内置于Visual Studio免费提供

使用 TypeScript 处理 AJAX 请求时,常需要在前端定义与 C# 物件属性一致的 TypeScript 类型,以便将后端传来的 JSON 资料还原成强类型物件。针对较正式的资料模型,我会用 CodeGen 方式同步 C# 与 TypeScript 端的类型定义(顺便处理多语系问题)。但蛮多时候处理对象只是零散的小类型,不必杀鸡用牛刀,针对这类需求,推荐一个好用工具-TypeLITE。

6款Java转C#的最佳工具

使用 TypeScript 处理 AJAX 请求时,常需要在前端定义与 C# 物件属性一致的 TypeScript 类型,以便将后端传来的 JSON 资料还原成强类型物件。针对较正式的资料模型,我会用 CodeGen 方式同步 C# 与 TypeScript 端的类型定义(顺便处理多语系问题)。但蛮多时候处理对象只是零散的小类型,不必杀鸡用牛刀,针对这类需求,推荐一个好用工具-TypeLITE。

powered by RelatedPosts