相关疑难解决方法(0)

如何获取TypeScript枚举条目的名称?

我想知道如何迭代TypeScript枚举和每个枚举的符号名称.

例如,

enum myEnum { entry1, entry2 }

for (var entry in myEnum) { 
    // use entry's name here, e.g., "entry1"
}
Run Code Online (Sandbox Code Playgroud)

enums typescript

253
推荐指数
26
解决办法
23万
查看次数

TypeScript中的"类型"保留字是什么?

我刚刚注意到在尝试使用TypeScript创建接口时,"type"是关键字或保留字.例如,在创建以下界面时,使用TypeScript 1.4在Visual Studio 2013中以"蓝色"显示"type":

interface IExampleInterface {
    type: string;
}
Run Code Online (Sandbox Code Playgroud)

假设您尝试在类中实现接口,如下所示:

class ExampleClass implements IExampleInterface {
    public type: string;

    constructor() {
        this.type = "Example";
    }
}
Run Code Online (Sandbox Code Playgroud)

在类的第一行,当您键入(抱歉)单词"type"以实现接口所需的属性时,IntelliSense会显示"type",其图标与"typeof"或"new"等其他关键字相同".

我已经浏览了一下,并且可以找到这个GitHub问题,它在TypeScript中将"type"列为"严格模式保留字",但我还没有找到任何关于其目的实际是什么的进一步信息.

我怀疑我有一个大脑放屁,这是我应该已经知道的明显的东西,但是TypeScript中的"类型"保留字是什么?

reserved-words keyword typescript

81
推荐指数
2
解决办法
3万
查看次数

地图打字稿枚举

我如何映射打字稿枚举?例如,使用字符串可以执行以下操作:

let arr = [ 'Hello', 'Goodbye' ];

arr.map(v => {
  if (v === 'Hello') {
    return ':)';
  } else if (v === 'Goodbye') {
    return ':(';
  }
); // [ ':)', ':(' ]
Run Code Online (Sandbox Code Playgroud)

当然,这不适用于枚举:

enum MyEnum { Hello, Goodbye };

MyEnum.map(v => {
  if (v === MyEnum.Hello) {
    return ':)';
  } else if (v === MyEnum.Goodbye) {
    return ':(';
  }
}); // does not work
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想以一种通用的方式执行此操作,因此我可以简单地使用任何枚举,并通过map函数将其保留,同时保留类型信息.用法可能如下所示:

map(MyEnum, v => {
  if (v === MyEnum.Hello) {
    return ':)'; …
Run Code Online (Sandbox Code Playgroud)

javascript enums typescript

13
推荐指数
4
解决办法
1万
查看次数

什么是"PropTypes.oneOf"的打字稿等价物(将变量限制为值的子集)

在反应中,我可以将变量限制为值的子集.喜欢

PropTypes.oneOf(['Home', 'About']),
Run Code Online (Sandbox Code Playgroud)

我怎么做打字稿.

.

PS:我没有使用打字稿做出反应.

javascript typescript

11
推荐指数
3
解决办法
2181
查看次数

使用字符串文字类型别名的枚举或联合之间有什么区别(优点/缺点)?

使用枚举与类型别名有何优缺点,如下所示?

const enum LanguageEnum {
  English,
  Spanish
}

type LanguageAlias = "English" | "Spanish";

let l: LanguageAlias = "English";

let la: LanguageEnum = Language.English

Run Code Online (Sandbox Code Playgroud)

使用枚举的目的是枚举类型的可能值。但是字符串文字的并集不是也枚举了可能的类型吗?

我一直觉得这些 TS 枚举很奇怪。

typescript

7
推荐指数
0
解决办法
1641
查看次数

如何告诉 TypeScript 我的函数参数是 Enum 键?

我有一个将 HTTP 状态映射到其代码的枚举,如下所示:

在此处输入图片说明

我可以通过访问它们的键轻松获取这些代码(注意 IntelliSenseHttpStatus.NOT_FOUND = 404在右侧面板上的显示方式)

在此处输入图片说明

现在假设我有一个名为 sendStatus 的函数:

我应该如何键入此函数才能让 IntelliSense 自动完成这些代码?

在此处输入图片说明

使用keyof typeof不起作用,因为它不会自动完成枚举值。

intellisense typescript visual-studio-code

7
推荐指数
2
解决办法
1223
查看次数