首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >和文字类型的危险有什么关系?

和文字类型的危险有什么关系?
EN

Stack Overflow用户
提问于 2017-03-30 12:15:04
回答 1查看 32关注 0票数 0

我把一个很大的JS项目翻译成TS项目,并注意到了一些事情。例如,我有一个模块,如下所示:

WinConstants.ts

代码语言:javascript
复制
export = {
  "no_win":0,
  "win":1,
  "big_win":2,
  "mega_win":3
}

我想让它保持不变,所以我就这样限制它:

WinConstants.ts

代码语言:javascript
复制
class WinConstants{
  readonly no_win:0;
  readonly win:1;
  readonly big_win:2;
  readonly mega_win:3;
}

export = new WinConstants();

挺酷的是吧?完成它,现在去翻译下一个模块。对吗?还没那么快。我忘了用":"s代替"=",而TypeScript 并没有警告我,。现在所有的值都是undefined。它可能会被雷达监视直到我在运行时看到它..。欢迎回到JS的不确定性!当你依赖编译器的错误时,把东西翻译成TS的全部意义就是取消了它自己.如果没有文字类型,这种情况就不会发生,因为在这种情况下,文字数字不会是类型。

那该怎么办呢?别误会我,我喜欢文字类型,它们很有帮助,但语法现在对我不利。不仅当我翻译时,而且当我写一些东西,不小心把:写成JSON风格而不是=符号时,这类事情可能都会被忽略。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-30 12:48:42

您的第一种方法和第二种方法都不是很好,因为您正在导出一个常量对象或一个类的实例。

为此,您应该使用enum (更多信息)。

代码语言:javascript
复制
export enum WinConstants {
  NO_WIN = 0,
  WIN = 1,
  BIG_WIN = 2,
  MEGA_WIN = 3
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43117606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档