typescript - 匹配 Promise 响应的多个接口之一
问题描述
我有一个 API 处理程序,它返回一个type
. 根据 API 响应,返回的对象可以是以下接口之一:
export interface Event {
statusCode: number
}
export interface CreateEvent extends Event {
data: Object
}
export interface Forbidden {
message: string
}
当我对这两种类型中的任何一种进行测试时,我似乎都无法正确选择这些类型。this value doesn't exist on type:
当它是一个成功的响应时,所有的都会返回类似于Forbidden 的缺失值的东西”
我期望:
type ApiResponse = Forbidden | Event | CreateEvent
或者
export enum ApiResponse {CreateEvent, Forbidden, Event}
将 api 函数返回类型设置为:
callApi = (event: Event): Promise<ApiResponse> => {...}
我不确定ts
对此有何期待。似乎是非常基本的行为。
解决方案
如果一个函数返回三项中的一项,您将需要一个类型保护或类型断言函数来确定它是三项中的哪一项。
推荐阅读
- r - 将下一行总结成一个新的列
- java - 带有通配符的 java JSON optstring
- swift - 使用 AWS Amplify 生成的代码在 Swift 中出现 hasMany 关系错误
- javascript - 未捕获的类型错误:无法访问属性“单词”,键未定义
- html - 如何正确定位 3 个圆形图像
- javascript - HTML 和 Javascript - ReferenceError: 文档未定义
- reactjs - 如何使用nextjs检查页面上是否已呈现html表单
- python - 为每一行将值的一部分切片到一列中
- javascript - req.body.user_id 在 js 中未定义
- python - 将字符串拆分成对