在使用 TypeScript 进行开发的过程中,我们经常会遇到各种错误。其中,TS2570 错误是一个常见的错误之一。当我们在类型为 Promise
typescriptinterface User { name: string; email: string; sendEmailVerification(): Promise;}async function verifyEmail(user: User): Promise { await user.sendEmailVerification(); // 错误:类型“Promise”上不存在属性“sendEmailVerification”。您是否忘记使用“等待”?}const user: User = { name: "Alice", email: "alice@example.com", sendEmailVerification() { return new Promise((resolve) => { // 发送电子邮件验证 resolve(); }); },};verifyEmail(user); 在上面的代码中,我们定义了一个 User 接口,它包含了一个名为 "sendEmailVerification" 的方法。这个方法返回一个 Promise 对象,表示发送电子邮件验证的异步操作。然后,我们定义了一个名为 "verifyEmail" 的异步函数,它接受一个 User 对象作为参数,并尝试调用 "sendEmailVerification" 方法。在调用这个方法之前,我们使用了 "await" 关键字来等待 Promise 对象的解析结果。接下来,我们创建了一个名为 "user" 的对象,它实现了 User 接口,并提供了一个 "sendEmailVerification" 方法的具体实现。在这个方法中,我们返回了一个新的 Promise 对象,并在该对象的解析函数中执行发送电子邮件验证的操作。最后,我们调用了 "verifyEmail" 函数,并传入了 "user" 对象。由于我们忘记使用 "await" 关键字,导致 TS2570 错误的产生。为了解决这个错误,我们只需要在调用 "sendEmailVerification" 方法时使用 "await" 关键字即可。修改后的代码如下:typescriptasync function verifyEmail(user: User): Promise在这个修改后的代码中,我们使用了 "await" 关键字来等待 Promise 对象的解析结果。这样一来,我们就可以正确地访问 Promise 对象的属性,而不会再出现 TS2570 错误了。TS2570 错误提示我们在访问类型为 Promise{ await user.sendEmailVerification(); // 使用 "await" 关键字等待 Promise 对象的解析结果}