Typeof泛型会导致错误

时间:2016-06-09 00:37:13

标签: enums typescript

我正在编写一个获取枚举字符串值的函数。

const getEnumValueToString = <T>(enumValue: T, _enum: typeof T): string => _enum[enumValue]

但是我收到错误:Cannot find name T

我看到https://github.com/Microsoft/TypeScript/issues/204但是枚举没有构造函数,所以它不起作用。我知道我可以内联它或使用any但我想知道如何正确输入这个函数。

1 个答案:

答案 0 :(得分:1)

功能:

<T>(enumValue: T, _enum: typeof T): string => _enum[enumValue]

相当无用。这是因为它更容易做SomeEnum[SomeEnum.Member]而不是调用此函数。 TypeScript已经理解枚举上的数字访问会产生一个字符串,例如:

enum Color {
    Red
}

let foo = Color[Color.Red]; // foo is inferred to be a string