TypeScript在不匹配的返回值上没有错误
为什么TypeScript没有对此抱怨TypeScript在不匹配的返回值上没有错误,typescript,Typescript,为什么TypeScript没有对此抱怨 async GetCategoriesBySet(set: Set): Promise<Result<Array<ProductCategory>>> { let categories: Array<ProductCategory> = [] if (!set.theme || !set.subtheme || !set.title) { return Promise.resolve(new
async GetCategoriesBySet(set: Set): Promise<Result<Array<ProductCategory>>> {
let categories: Array<ProductCategory> = []
if (!set.theme || !set.subtheme || !set.title) {
return Promise.resolve(new Result<Array<ProductCategory>>({res: null, err: "Set data is not valid"}))
}
categories.push(await this.GetCategory(set.theme, {parent: (await this.GetCategory('Themes')).id}))
return categories
}
异步GetCategoriesBySet(set:set):承诺{
让类别:数组=[]
如果(!set.theme | | |!set.subtheme | |!set.title){
返回Promise.resolve(新结果({res:null,err:“集合数据无效”}))
}
categories.push(等待this.GetCategory(set.theme,{parent:(等待this.GetCategory('Themes')).id}))
退货类别
}
返回值categories
,属于Array
类型,不是承诺,甚至不是包装结果
类。那么,为什么让我犯这个错误会让人高兴呢?(有没有办法让它抱怨?)
提前谢谢
返回值categories的类型为Array,而不是Promise
所有async
函数都返回一个Promise
。这是JavaScript规范的一部分。如果您返回一个常量,它本质上就是Promise.resolve
ed
返回值categories的类型为Array,而不是Promise
所有
async
函数都返回一个Promise
。这是JavaScript规范的一部分。如果您返回一个常量,它本质上就是Promise.resolve
ed.当您的函数声明Promise
返回类型时,您可以返回Result
类型的值
如果我有以下声明:
interface Result<T> {
result: T;
}
接口结果{
结果:T;
}
我从TypeScript编译器收到错误:
类型“ProductCategory[]”中缺少属性“result”。
您对
Result
的定义是什么?当您的函数声明Promise
返回类型时,您可以返回Result
类型的值
如果我有以下声明:
interface Result<T> {
result: T;
}
接口结果{
结果:T;
}
我从TypeScript编译器收到错误:
类型“ProductCategory[]”中缺少属性“result”。
您对结果的定义是什么