Why the TypeScript Edition
The editor you know, with types you can trust.
Same RichTextEditor runtime, wrapped so TypeScript understands it: a typed config object, an awaited async loader, and a typed instance back — instead of a global script and an untyped constructor.
Before — untyped global
<!-- Classic: a global script and an untyped constructor -->
<script src="/rte/rte.js"></script>
<script>
var editor = new RichTextEditor("#editor");
editor.setHTMLCode("<p>hi</p>"); // no autocomplete, no checking
</script>After — typed import
import {
createRichTextEditor,
type RichTextEditorInstance,
} from "ts-rich-text-editor";
// Typed config, awaited assets, typed instance back.
const editor: RichTextEditorInstance =
await createRichTextEditor(host, { height: "480px" });
editor.setHTMLCode("<p>hi</p>"); // checked + autocompletedTyped options
Configuration you can autocomplete
RichTextEditorOptions describes the config object, so your editor is set up with autocomplete and compile-time checking instead of guesswork against docs.
Typed instance
A known API surface
createRichTextEditor resolves to a typed RichTextEditorInstance — getHTMLCode, setHTMLCode, execCommand, attachEvent, focus, and destroy are all discoverable from your editor.
Async assets
No global script tag
The runtime, styles, plugins, and language files load on demand through an async loader. Import a function; you are not committed to a global <script> and a window global.
Same runtime
Nothing lost in translation
This is not a re-implementation. It is the shipping RichTextEditor build under a typed facade, so every feature — tables, Office paste, AI Toolkit, collaboration — is exactly the same.
Portable
Fits any framework or none
Because you attach to a plain element and get an instance back, the same call works in React, Vue, Angular, or vanilla TypeScript with no framework-specific wrapper.
Perpetual license
Own the build you ship
The package includes the typed wrapper and the full runtime. Buy it once and self-host the assets — there is no per-seat metering and no mandatory cloud call.
Try it against your own TypeScript app.
The download bundle ships the typed package, the full source, and a self-contained HTML evaluation you can host anywhere.