gpt4 book ai didi

TypeScript:错误 TS2322:类型 '{}' 无法分配给类型 '...'

转载 作者:行者123 更新时间:2023-12-02 20:19:51 24 4
gpt4 key购买 nike

我有一个界面:

export default interface ValidationResult {
valid: boolean
errors?: string[]
}

以及一个返回实现该接口(interface)的对象的函数:

  static validateTitle(title: string): ValidationResult {
if (title == null || title === '')
return {valid: false, errors: ["Title can't be empty."]}

return {valid: true}
}

但是当我尝试在其他函数中使用第一个函数时:

static async validateMovie(title: string): Promise<ValidationResult> {
const result = this.validateTitle(title)
if (result.valid === false)
return new Promise((resolve, reject) => { resolve(result) })
// other validations...
}

我收到 TypeScript 错误:

error TS2322: Type '{}' is not assignable to type 'ValidationResult'.
Property 'valid' is missing in type '{}'.

25 return new Promise((resolve, reject) => { resolve(result) })
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我尝试在任何地方使用 as ValidationResult 进行转换,但没有成功。怎么了?我不明白 TypeScript 在提示什么。

最佳答案

鉴于您的函数已经是 async你只需要return result; .

或者您可以return new Promise<ValidationResult> .

Typescript 尚未推断 Promise 的类型,这是一个已知问题: https://github.com/Microsoft/TypeScript/issues/5254

关于TypeScript:错误 TS2322:类型 '{}' 无法分配给类型 '...',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51697977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com