首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何访问TinyMCE在React和TypeScript中定义的“编辑器”类型?

如何访问TinyMCE在React和TypeScript中定义的“编辑器”类型?
EN

Stack Overflow用户
提问于 2022-10-11 19:36:32
回答 1查看 113关注 0票数 0

我试图弄清楚如何访问NPM模块中定义的类型。

TinyMCE有一个名为Editor的编辑器React组件,它包含一个onInit方法,它接受两个参数,一个事件和编辑器本身,也是一个Editor类型,但与组件不同。

因此,我从库中导入Editor组件

代码语言:javascript
运行
复制
import { Editor as TinyMCEEditor } from '@tinymce/tinymce-react';

我定义编辑如下..。

代码语言:javascript
运行
复制
<TinyMCEEditor
   apiKey="asdf"
   onInit={(evt, editor) => onInitCallBack(evt, editor)}
   ...
/>

然后,我尝试定义回调以匹配预期的类型。

代码语言:javascript
运行
复制
const onInitCallBack = (_, editor: Editor) => {
   ...
};

奇怪的是,它能够识别Editor类型,当它被鼠标化时,就给出了如下所示。

代码语言:javascript
运行
复制
(parameter) editor: Editor

以及事件的类型:

代码语言:javascript
运行
复制
(parameter) evt: {
    readonly type: string;
    readonly target: any;
    readonly isDefaultPrevented: () => boolean;
    readonly preventDefault: () => void;
    ...etc
}

但是在onInitCallBack上,当我试图定义Editor类型时,它说它找不到“编辑器”的名称:

代码语言:javascript
运行
复制
type Editor = /*unresolved*/ any
Cannot find name 'Editor'. ts(2304)

要让它看到在NPM包中定义的Editor类型,我需要做什么?

如果我尝试使用TinyMCEEditor作为类型,我会得到以下错误。

代码语言:javascript
运行
复制
(parameter) editor: Editor
Argument of type ‘import("e:/Git/web-app-release-notes-editor/node_modules/tinymce/tinymce").Editor’ is not assignable to
parameter of type ‘import("e:/Git/web-app-release-notes-editor/node_modules/@tinymce/tinymce-
react/1lib/cjs/main/ts/components/Editor").Editor’

Type ‘Editor’ is missing the following properties from type ‘Editor’: elementRef, boundHandlers, rollbackTimer, valueCursor, and
23 more. t5(2345)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-11 20:04:45

您混淆了React组件编辑器和tinymce编辑器--注意它们的名称相同。你需要这样的东西。

代码语言:javascript
运行
复制
import { Editor } from '@tinymce/tinymce-react';
import { Editor as TinyMCEEditor } from 'tinymce';

然后

代码语言:javascript
运行
复制
const editorRef = useRef<TinyMCEEditor | null>(null);

还有..。

代码语言:javascript
运行
复制
<Editor
   onInit={(evt, editor) => editorRef.current = editor}
   ...
/>

虽然我可能搞砸了这里的语法..。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74033277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档