首页 > 解决方案 > 如何在 C# 中创建类似 String Literal Union 类型的 TypeScript

问题描述

我在 C# 中使用一些 JSON 和 API。我想知道如何处理这样的事情。

JSON 值之一是可以是以下值之一的字符串:“Last_Day”、“Last_Week”、“Last_Month”。

在 TypeScript 中,我可以这样做:

type DateSince = "Last_Day" | "Last_Week" | "Last_Month"

然后我得到这样的类型提示:

VS Code 类型提示建议 3 个可能的值。

如果值不是这 3 个字符串,我会收到红色的波浪线错误。从技术上讲,我的值仍然是一个字符串,这是我需要与 JSON API 请求和响应一起使用的值。

我还没有找到在 C# 中执行此操作的好方法。甚至有可能在 C# 中相对容易地做到这一点吗?

我理想的解决方案是让我将自定义类型分配给变量,而不是使用字符串。这样我就不必记住可能的字符串值。

标签: c#typesenums

解决方案


在 C# 中,您可以使用枚举。

public enum DateSince
{
    Last_Day ,
    Last_Week,
    Last_Month
}

用法:

var datesince = DateSince.Last_Day;

阅读有关 C# 枚举的更多信息


推荐阅读