【问题标题】:how to use C# enum list in typescript如何在打字稿中使用 C# 枚举列表
【发布时间】:2019-01-02 10:57:33
【问题描述】:

这是我在 C# 中的枚举列表类

   namespace MyProject.MyName
    {
   public enum MyNameList
     {
    [Description("NameOne")]
    NameOne,

    [Description("NameTwo")]
    NameTwo,

    [Description("NameThree")]
    NameThree
        }
      } 

这就是我在 C# .cshtml razor 和 javascript 中使用这个枚举列表的方式

    @using MyProject.MyName
     ....
     ....
     <script>
          ..
          ..
      if (result.data == @((int)MyNameList.NameOne))
          ..
          ..
     </script>  

现在我必须在 Typescript 中编写这个 (javascript) 代码,如何在 Typescript 中使用我的枚举列表 MyNameList??

【问题讨论】:

    标签: c# typescript enums


    【解决方案1】:

    您需要创建一个新的 typescript 定义文件,例如 nameList.d.ts

    export enum MyNameList
    {
        NameOne,
        NameTwo,
        NameThree
    }
    

    在 Typescript 文件中,像这样导入

    import { MyNameList } from "./nameList";
    

    现在你可以在打字稿中使用那些枚举列表,比如

    MyNameList.NameOne
    

    【讨论】:

      【解决方案2】:

      javascript 在本地浏览器上执行。您将无法直接在那里使用 Enum。

      您可以将 Enum 值作为响应的一部分返回,然后在 JS 中比较 enum 值。

      您可以在 typescript 中添加枚举,然后使用它与响应字段进行比较。

      enum Direction {
          Up = "UP",
          Down = "DOWN",
          Left = "LEFT",
          Right = "RIGHT",
      }
      

      【讨论】:

      • 我必须为 Typescript 创建新的枚举列表吗?我可以映射到 C# 枚举列表吗??
      • @StevenSann 您不能在打字稿中使用 C# 代码。这是因为您的服务器端代码永远不会在对浏览器的响应中发送。您将不得不创建新的枚举。如果您的原始枚举发生更改,那么 typescript 枚举也应该更改。
      猜你喜欢
      • 2020-01-29
      • 2018-09-16
      • 2020-04-30
      • 1970-01-01
      • 2020-01-17
      • 1970-01-01
      • 2021-02-09
      • 1970-01-01
      • 2018-09-23
      相关资源
      最近更新 更多