我当前的函数可以返回已实现的字符串或自定义类型
public getTenantsByEmail = (emailId: string): Promise<ITenants | string | IErrorResponse> => {
if (emailId) {
this.config = GetConfig();
if (this.config.isMock) {
return this.mock();
} else {
return getAxios.get(`tenants/emails/${emailId}`)
.then((response: IHttpResponse) => response.data);
}
} else {
return new Promise((resolve, reject) => reject('Invalid Email id'));
}
}
但是当我使用此
return tenantRegistration.createTenant(postObject)
.then((response: ITenants) => {
expect(response.result.bucket).toBe('my-cool-bucket');
});
我收到此错误
TS2345: Argument of type '(response: ITenants) => void' is not assignable to parameter of type '(value: string | ITenants | IErrorResponse) => void | PromiseLike<void>'.
参数“响应”和“值”的类型不兼容。 输入'string | ITenants |无法将“ IErrorResponse”分配给“ ITenants”类型。 不能将“字符串”类型分配给“ ITenants”类型。
如何将其用于多种返回类型?