#javascript #typescript
Вопрос:
Здесь мой код выглядит так:
export const EMOJI_NAME_KEY = "n";
export const EMOJI_UNICODE_KEY = "u";
export interface Emoji {
[EMOJI_NAME_KEY]: string[];
[EMOJI_UNICODE_KEY]: string;
}
const emoji: Emoji = {
[EMOJI_NAME_KEY]: 'thumb',
[EMOJI_UNICODE_KEY]: 'some_unicode_key'
}
Теперь всякий раз, когда я пытаюсь получить доступ к значению из типа Emoji, я получаю сообщение об ошибке. Например:
console.log(emoji[EMOJI_NAME_KEY]) // returns error in the terminal like below
Элемент неявно имеет тип ‘any’, поскольку выражение типа
‘string’ нельзя использовать для индексации типа ‘Emoji’.
Для типа ‘Emoji’ не найдена индексная подпись с параметром типа ‘string’
Комментарии:
1. Вы должны объявить emoji как
const emoji: Emoji = { [EMOJI_NAME_KEY]: ['thumb'], [EMOJI_UNICODE_KEY]: 'some_unicode_key' }
. Обратите внимание на массив для ключа Name2. Вот ваш код в TypeScript Playground с комментариями о том, как это исправить.