首页 > 解决方案 > 带有字符串变量的打字稿访问哈希图

问题描述

我做了这个简单的代码:

const testHashMap = {
    hello: "Hi",
    test: "Hey",
    blabla: "Halo"
}

const inputFromField : string = "hello";

alert(testHashMap[inputFromField]);

但是最后一行不起作用,因为它要求 inputFromField 来自类型"hello" | "test" | "blabla"而不是一般字符串,我怎么能坚持使用字符串?因为它应该是未来用户的输入。

标签: typescripthashmap

解决方案


您可以显式声明常量的类型:

const testHashMap: Record<string, string> = {
    hello: "Hi",
    test: "Hey",
    blabla: "Halo"
}

Record<string,string>是 . 的一种更易读的形式(语法糖?){[key: string]: string}。你可以这样写上面的代码,它的意思是一样的:

const testHashMap: {[key: string]: string} = {
    hello: "Hi",
    test: "Hey",
    blabla: "Halo"
}

推荐阅读