每次我尝试在 Strapi 中添加新的集合类型时,Typescript 都会抛出错误

Bil*_*tel 4 typescript strapi

我新安装了最新的 Strapi (4.11.1),并且是该平台的新手。我使用 Postgres 作为我的后端。一切都进展顺利,直到今天早上,当我试图向我现有的定义中添加一个新的集合时。起初我将其称为“应用程序”,并经历了定义阶段,并得到了如下错误:

src/api/application/controllers/application.ts:7:47 - error TS2345: Argument of type '"api::application.application"' is not assignable to parameter of type 'ContentType'.

7 export default factories.createCoreController('api::application.application');

src/api/application/routes/application.ts:7:43 - error TS2345: Argument of type '"api::application.application"' is not assignable to parameter of type 'ContentType'.

... 

Found 3 error(s).
Run Code Online (Sandbox Code Playgroud)

为了简洁起见,删除了其他相关错误。

考虑到“Application”可能是一个保留关键字,我没有被警告,所以我删除了 src/api 中的“application”文件夹,然后重新开始,这次将其称为“Package”。同样的错误,新名称。所以我再次尝试,但使用了不可能是保留关键字的内容 - “Hutzpah”。同样的问题。我也停止尝试对集合类型进行完整定义,只添加了一个名为“Name”的文本字符串。同样的问题。这些是我得到的唯一错误。

似乎由于某种原因,strapi 没有添加 JSON“模式”的类型接口版本types/generated/contentTypes.d.ts,这种遗漏就是导致错误的原因,但我对 Strapi 不够熟悉,无法理解为什么会出现这种情况,或者如果这是转移注意力的话。

非常感激任何的帮助。感谢您的时间。

小智 9

我今天遇到了同样的问题。相同版本的 Strapi 和 TypeScript。您是否按照此处提到的那样生成了类型?https://docs.strapi.io/dev-docs/typescript#generate-typings-for-project-schemas

我发现这可能是问题所在,所以我删除了生成的文件夹“types”及其所有内容,现在它工作正常