是否可以通过字符串值从typescript命名空间获取变量? 我想做更像这样的事情。来自命名空间:
namespace Keys {
const string key1 = 'x';
const string key2 = 'y';
}
按字符串获取值:
function getKey(suffix: string) {
return Keys[`key${suffix}`];
}
对于来电getKey('1')
,它应该返回x
。
上面的代码不起作用。我想到了在该命名空间中创建辅助函数的想法。还有其他办法吗?
编辑
将export
添加到值后,出现了以下问题:
element implicitly has an 'any' type because type 'typeof' has no index signature
。明确地向any
投射是解决方案。我找不到更好的方法。
答案 0 :(得分:3)
您需要namespace Keys {
export const key1 = 'x';
export const key2 = 'y';
}
这些值才能在命名空间之外访问它们。
array#reduce
您的解决方案的其余部分看起来不错。