typescript - 使用适当的键 TypeScript 键入字符串或对象
问题描述
我的 languageSchema 可以是字符串或带有 'Etc' 键的对象。我有一个界面:
let getLanguageSchema = (language: string): string => languagesSchemas[language];
interface IReduxProps {
languageSchema:
string
| {
Etc: {
listEmpty: string;
};
};
}
零件:
let EmptyList: React.FC<IReduxProps> = (props) => {
let { languageSchema } = props;
return (
<div className="mt-5 text-center grey">
<i className="now-ui-icons files_paper fs-4" />
<h3 className="mb-0">{languageSchema.Etc.listEmpty}</h3>
</div>
);
};
let mapStateToProps = (state: IReduxState): IReduxProps => ({
languageSchema: getLanguageSchema(state.common.language),
});
TypeScript 编译器说:'属性'Etc' 不存在于类型'string | {等:{listEmpty:字符串;}; }'。“字符串”类型上不存在属性“等”。
为可以是对象或字符串的属性设置适当类型的正确方法是什么?
解决方案
推荐阅读
- android - 无法将 Kotlin-android-extension 与 Kotlin/native 一起使用
- c - GDB 不允许我读取 argv 内存段
- c# - 从列表框中获取多项选择
- ruby - 尝试使用 chromedriver 运行测试的问题
- html - Bootstrap 4 手风琴在角度 4 中导航
- javascript - 根据php ci中的指定值绘制自定义形状和填充颜色
- laravel - 使用 laravel-snappy 生成空白内容 PDF
- postgresql - 从属中的 Postgres 复制 .done 文件
- azure - 如何将托管在云上的 MySQL 数据库连接到 Azure 数据工厂?
- c# - 如何使用 c# 进行多个浏览器操作?