【问题标题】:error: Could not find a declaration file for module '@ckeditor/ckeditor5-build-classic' angular 9错误:找不到模块'@ckeditor/ckeditor5-build-classic'角度9的声明文件
【发布时间】:2020-10-22 16:32:47
【问题描述】:

我想在 Angular 9 中使用 ckeditor,我按照https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/frameworks/angular.html 中的说明进行操作 但它在我导入“@ckeditor/ckeditor5-build-classic”时显示错误:

Could not find a declaration file for module '@ckeditor/ckeditor5-build-classic'. 

'a:/repositories/BasimStore/source/Web/Frontend/node_modules/@ckeditor/ckeditor5-build-classic/build/ckeditor.js' implicitly has an 'any' type.
  Try `npm install @types/ckeditor__ckeditor5-build-classic` if it exists or add a new declaration (.d.ts) file containing `declare module '@ckeditor/ckeditor5-build-classic';`

我在 package.json 中有 "@ckeditor/ckeditor5-angular": "^1.2.3" 和 "@ckeditor/ckeditor5-build-classic": "^20.0.0" 但它仍然显示错误。 我在 ckeditor5-build-classic 文件夹中找不到 index.d.ts。我应该如何解决这个错误?

【问题讨论】:

    标签: angular angular9 ckeditor5


    【解决方案1】:

    在您的项目根目录或任何文件夹中添加 typings.d.ts 文件

    在输入文件中添加以下代码

    declare module '@ckeditor/ckeditor5-build-classic' {
        const ClassicEditorBuild: any;
    
        export = ClassicEditorBuild;
    }
    

    Angular 会自动检测类型并将其编译为依赖项,这将解决它在官方 CKEDITOR 页面中也建议的问题:https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/frameworks/angular.html

    目录结构

    【讨论】:

    • 除了上述建议外,请执行以下步骤:将导入添加到发生该问题的组件中,例如 x.component.ts import * as ClassicEditorBuild from '@ckeditor/ ckeditor5-build-classic'; export class x implements OnInit { public Editor = ClassicEditorBuild;constructor() { } ngOnInit(): void {}} 最后,在 x.component.html
    • 我将它添加到具有 '@ckeditor/ckeditor5-build-classic' 导入的模块中并且它起作用了
    • 太棒了。我有同样的问题,你的建议奏效了。大起大落
    【解决方案2】:

    我对 Angular 8 也有同样的问题 "@ckeditor/ckeditor5-angular": "^1.2.3", "@ckeditor/ckeditor5-build-classic": "^19.0.2",

    编辑:我找到了这个解决方案:编辑你的 TypeScript 配置文件 (tsconfig.json) 并添加一个新的键值对

    "noImplicitAny": false
    

    【讨论】:

      【解决方案3】:

      如果有人仍然感兴趣,可以向 TS 提供社区支持。 您需要做的就是使用以下条目更新您的 package.json:

          "@types/ckeditor__ckeditor5-core": "^27.0.13",
          "@types/ckeditor__ckeditor5-basic-styles": "^27.0.1",
          "@types/ckeditor__ckeditor5-editor-classic": "^27.0.0",
          "@types/ckeditor__ckeditor5-essentials": "^27.0.4",
          "@types/ckeditor__ckeditor5-paragraph": "^27.0.0"
          
      

      【讨论】:

        【解决方案4】:

        Typescript 找不到声明文件,并抱怨“any”的隐式/推断类型。

        您可以按照@khaled 的说明禁用规则(“核”选项 - 该规则被全局禁用)。

        更好的解决方法是在 typings.d.ts 文件中将 ClassicEditorBuild 的类型明确定义为“any”,如下所述:https://github.com/ckeditor/ckeditor5-angular/issues/70#issuecomment-513827165

        在使用 Angular 11.0.5 和 Typescript 4.0.2 升级到 CKEditor5 时,这对我有用

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-10-14
          • 1970-01-01
          • 2017-08-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-02
          • 2019-04-29
          相关资源
          最近更新 更多