typescript - 联合上不存在类型中的专用属性
问题描述
首先看一下代码
type TBasedInfo = {
name: 'getBasedQuery';
params: {
market: string;
items: string;
year?: string;
};
};
type TGetShopDetail = {
name: 'getShopDetail';
params: {
market: string;
items: string;
shopName: string;
year?: string;
};
};
type TGetCarDetail = {
name: 'getCarDetail';
params: {
market: string;
items: string;
car: string;
year?: string;
};
};
type TMsRequest = TGetCarDetail | TGetShopDetail | TBasedInfo;
function getRequest(request: TMsRequest) {
switch (request['name']) {
case 'getShopDetail':
const { shopName } = request['params'];
console.log(shopName);
case 'getCarDetail':
const { car } = request['params'];
console.log(car);
}
}
我得到了错误Property 'car' does not exist on type '{ market: string; items: string; shopName: string; year?: string; } | { market: string; items: string; car: string; year?: string; }'.ts(2339)
,这是 type 的专用字段TGetCarDetail
。但是这个问题并没有发生在另一个专门的领域shopName
。
大家能分享一下你的想法,以及在这种情况下如何解决。
解决方案
推荐阅读
- ios - 如何使用 SwiftUI 更改根视图
- esxi - 与 exsi6.7 数据存储失去连接,但可以连接到磁盘
- reactjs - socket.io 中的重复事件
- javascript - 更新包(buefy)会破坏项目(filegator) - 导入问题(?)
- php - var_dump 结果中的数字是多少?
- r - R Stan:“sampler$call_sampler 中的错误(args_list[[i]])
- node.js - 反应:API url 在 GET 请求中有效,但在 POST 请求中被更改
- macos - 如何在我的电子应用程序中打包助手?
- python - 从 Pandas 高效创建字典的 Pythonic 方法
- c# - 如何从字典中的 typeof 获取类名?