diff --git a/docs/concepts/11-typescript.md b/docs/concepts/11-typescript.md index 1662bbb78..de267c022 100644 --- a/docs/concepts/11-typescript.md +++ b/docs/concepts/11-typescript.md @@ -4,6 +4,16 @@ Slate supports typing of one Slate document model (ie. one set of custom `Editor **Warning:** You must define `CustomTypes` when using TypeScript or Slate will display typing errors. +> Migrating from 0.47.x? +> +> Please read the guide below first to understand CustomTypes. +> +> If you are having issues, here are the most common migration gotchas: +> +> - You get typing errors when referring to `node.type` (Property `type` does not exist on type `Node`). To fix this, you need something like `Element.isElement(node) && node.type === 'paragraph'`. This is because a `Node` can be an `Element` or `Text` and `Text` does not have a `type` property. +> +> - You may have defined CustomType for `Editor` incorrectly. Make sure to define the CustomType for `Editor` as `BaseEditor & ...`. It should not be `Editor & ...` + ## Defining `Editor`, `Element` and `Text` Types To define a custom `Element` or `Text` type, extend the `CustomTypes` interface in the `slate` module like this.