我有一个处于状态的对象,我需要在输入组件内部动态访问其值
var selectedLangTab具有数字类型
我正在尝试通过以下方式获得价值: 值= {userInput.translations [selectedLangTab]。标题
错误:
元素隐式地具有“ any”类型,因为类型为'{0:{title:string; AdditionalInfo:字符串;内容:字符串;语言:语言; }; 1:{title:字符串; AdditionalInfo:字符串;内容:字符串;语言:语言; }; }'没有索引签名。
translations: {
[Language.CS]: {
title: 'Title CZ',
additionalInfo: '',
content: '',
language: Language.CS
},
[Language.EN]: {
title: 'Title EN',
additionalInfo: '',
content: '',
language: Language.EN
}
}
翻译界面:
translations: {
[key in Language]: {
title: string;
additionalInfo: string;
content: string;
language: Language;
}
};
语言界面:
export enum Language {
CS,
EN
}
答案 0 :(得分:1)
问题是,如果您要使用- (void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
//Save the textField values
}
进行索引,则translations
具有来自0
的两个属性(1
和enum
)数字,不能保证数字在此范围内,因此会出错。
您可以将selectedLangTab
定义为selectedLangTab
或0 | 1
类型,以使错误消失:
Language
或者您可以使用类型断言来告诉编译器您确定数字在适当的范围内:
let selectedLangTab: 0 | 1 = 1;
userInput.translations[selectedLangTab].title