Appwrite创建文档时userId参数未读取的报错修复咨询
修复Appwrite创建文档时“userId已声明但从未被读取”的警告
问题原因
你在createProject方法的参数中声明了userId,但代码逻辑里并未使用这个传入的参数,而是通过Appwrite的Account.get()获取当前用户ID,因此TypeScript抛出了“变量已声明但未读取”的警告。
解决方案
根据你的业务需求,选择以下两种修复方式之一:
方案1:移除未使用的userId参数
如果你的业务逻辑就是依赖Appwrite Account服务获取当前用户ID,不需要外部传入userId,直接删除参数及类型定义中的对应字段:
修改后的类型定义:
type createProject = { name: string, description: string, logo: string, url: string }
修改后的createProject方法:
async createProject({name, description, logo, url}: createProject) { const account = new Account(dbClient); const user = (await account.get()).$id try { const project = await db.createDocument( conf.appwriteDbId, conf.appwriteCollectionId, ID.unique(), { name, description, logo, url, userId: user || '' }, [] ) } catch (error:any) { throw error } }
方案2:使用传入的userId参数
如果需要支持外部传入userId(比如管理员代创建场景),则直接使用参数中的userId,同时可以移除不必要的Account服务调用:
修改后的createProject方法:
async createProject({name, description, logo, url, userId}: createProject) { try { const project = await db.createDocument( conf.appwriteDbId, conf.appwriteCollectionId, ID.unique(), { name, description, logo, url, userId: userId || '' }, [] ) } catch (error:any) { throw error } }
内容的提问来源于stack exchange,提问作者Ayush Parui
相关产品推荐
相关产品推荐

