TypeScript - 如何动态地从命名空间获取变量?

时间:2018-01-23 07:32:06

标签: typescript

是否可以通过字符串值从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投射是解决方案。我找不到更好的方法。

1 个答案:

答案 0 :(得分:3)

您需要namespace Keys { export const key1 = 'x'; export const key2 = 'y'; } 这些值才能在命名空间之外访问它们。

array#reduce

您的解决方案的其余部分看起来不错。