You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用TypeScript改写AppWrite React Todo Demo的api.js遇类型错误求助

解决TypeScript类型不匹配错误

你遇到的错误是因为TypeScript自动推断api.sdk的类型为null,但后续赋值的对象类型与null不兼容。只需显式定义类型即可解决:

首先导入Appwrite相关类型,并定义SDK结构的接口:

import { Appwrite, Account, Databases } from 'appwrite';

interface ApiSdk {
  database: Databases;
  account: Account;
}

接着给api变量指定完整类型,允许sdk为null或目标对象:

let api: {
  sdk: ApiSdk | null;
  provider: () => ApiSdk;
} = {
  sdk: null,

  provider: () => {
    if (api.sdk) {
      return api.sdk;
    }
    const appwrite = new Appwrite();
    appwrite.setEndpoint(Server.endpoint).setProject(Server.project);
    const account = new Account(appwrite);
    const database = new Databases(appwrite);

    api.sdk = { database, account };
    return api.sdk;
  }
};

这样TypeScript就能正确识别类型,错误就会消失。

内容的提问来源于stack exchange,提问作者Vishal Tanna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 10:18:17