Хэш-карта доступа для машинописного текста со строковой переменной - PullRequest
0 голосов
/ 15 апреля 2020

Я сделал этот простой код:

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

const inputFromField : string = "hello";

alert(testHashMap[inputFromField]);

Но последняя строка не работает, потому что она требует, чтобы inputFromField был от типа "hello" | "test" | "blabla", а не от обычной строки, как я могу настаивать на использовании строка? как это должно быть от пользователя в будущем.

1 Ответ

1 голос
/ 15 апреля 2020

Вы можете явно объявить тип для своей константы:

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

Record<string,string> - это более понятная форма (syntacti c sugar?) Для {[key: string]: string}. Вы могли бы написать приведенный выше код, как это, и это будет означать то же самое:

const testHashMap: {[key: string]: string} = {
    hello: "Hi",
    test: "Hey",
    blabla: "Halo"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...