C# 和打字稿之间 JSON 的端到端类型安全
End to end type safety of JSON between C# and typescript
Typescript 和 C# 都支持对“编译”类型检查的对象成员的类型安全访问,json 用于在 Web 应用程序后端和前端之间传输“数据传输对象” .
我希望这里有可以从定义 JSON 消息的 C# 类 生成打字稿“包装器 类” 的工具——但我从未听说过这样的工具正在使用。
可能不是活跃的 TypeScript 开发人员,我错过了 TypeScript 工具集中的一些东西,或者 .net 的“标准”JSON 工具包之一已经做到了。或者我可以问一个非常愚蠢的问题......
TypeLITE 将 C# 类 转换为 TypeScript 接口:
public class Address {
public string Street { get; set; }
}
public class Person {
public string Name { get; set; }
public List<address> Addresses { get; set; }
}
变成:
interface Address {
Street: string;
}
interface Person {
Name: string;
Addresses: Address[];
}
这将使您的 TypeScript 在使用 C# 时保持诚实 API。
Reinforced.Typing 看起来像是一个选项,它似乎生成 TypeScript 代码来调用网络服务以及 interfaces/objects 来描述返回的数据。
Simply, this thing converts your .NET assemblies to TypeScript code.
It integrates to VisualStudio build process.
我认为它比 TypeLITE 使用得少,两者都是开源的,因此可以扩展以满足给定项目的需求。
看看Reinforced.Typings and particularly this sample。其中展示了如何将您的 MVC 应用程序控制器转换为 AngularJS 返回模型 ng.IPromise<>
的服务,并确保构建时的类型安全。
Typescript 和 C# 都支持对“编译”类型检查的对象成员的类型安全访问,json 用于在 Web 应用程序后端和前端之间传输“数据传输对象” .
我希望这里有可以从定义 JSON 消息的 C# 类 生成打字稿“包装器 类” 的工具——但我从未听说过这样的工具正在使用。 可能不是活跃的 TypeScript 开发人员,我错过了 TypeScript 工具集中的一些东西,或者 .net 的“标准”JSON 工具包之一已经做到了。或者我可以问一个非常愚蠢的问题......
TypeLITE 将 C# 类 转换为 TypeScript 接口:
public class Address {
public string Street { get; set; }
}
public class Person {
public string Name { get; set; }
public List<address> Addresses { get; set; }
}
变成:
interface Address {
Street: string;
}
interface Person {
Name: string;
Addresses: Address[];
}
这将使您的 TypeScript 在使用 C# 时保持诚实 API。
Reinforced.Typing 看起来像是一个选项,它似乎生成 TypeScript 代码来调用网络服务以及 interfaces/objects 来描述返回的数据。
Simply, this thing converts your .NET assemblies to TypeScript code. It integrates to VisualStudio build process.
我认为它比 TypeLITE 使用得少,两者都是开源的,因此可以扩展以满足给定项目的需求。
看看Reinforced.Typings and particularly this sample。其中展示了如何将您的 MVC 应用程序控制器转换为 AngularJS 返回模型 ng.IPromise<>
的服务,并确保构建时的类型安全。