Я хочу использовать ChildNode
методы. Если для ex. Я набираю это:
const node = window.getSelection().getRangeAt(0).startContainer;
if (this.isChildNode(node)) {
this.node.replaceWith(...);
}
isChildNode(node: Node): node is ChildNode {
return 'replaceWith' in node;
}
Выдает ошибку:
Тип предиката типа должен быть назначен типу его параметра.
Тип «ChildNode» не может быть назначен типу «Node». Недвижимость 'baseURI'
отсутствует в типе 'ChildNode'
Если я просто разыграю это:
const node = window.getSelection().getRangeAt(0).startContainer;
(node as ChildNode).replaceWith(...nodes)
Выдает ошибку:
Тип 'Node' не может быть преобразован в тип 'ChildNode'
Свойство «удалить» отсутствует в типе «Узел»
Только any
компилирует приложение:
(node as any).replaceWith(...nodes)
Демонстрация Stackblitz
Что меня смущает, так это то, что Документы ChldNode в MDN утверждают, что ChildNode не наследует никаких свойств или методов. Так как же это extends Node
в Typescript ...?