【发布时间】:2021-10-25 15:29:12
【问题描述】:
我正在尝试遍历返回不同类型配置对象的函数数组(进行网络调用)。基于此配置,我正在渲染具有不同道具的反应组件。但我正在努力让打字稿在这方面合作。
这是我目前所拥有的一个简化示例;
type FirstConfig = {
a: 'a';
};
type SecondConfig = {
b: 'b';
};
type ConfigObject = FirstConfig | SecondConfig;
type ConfigFunction = () => ConfigObject;
const configArray: ConfigFunction[] = [() => ({ a: 'a' }), () => ({ b: 'b' })];
configArray.map(getConfig => {
const { a, b } = getConfig();
console.log(a, b);
});
每当我遍历配置函数数组并调用它时,似乎都抱怨ConfigObject 上定义的属性都不存在。这里有任何提示/指导吗?
【问题讨论】:
-
您需要测试返回对象的类型。使用
|,对象将仅具有可用的公共属性而不会缩小类型。
标签: javascript reactjs typescript