fix(lineNumbers): make $el property optional in LineNumbersState interface

这个提交包含在:
rohow
2026-01-29 19:08:12 +08:00
未验证
父节点 271ffc9bfd
当前提交 7d7fa00138
+5 -4
查看文件
@@ -95,7 +95,7 @@ function appendElementLines(
} }
interface LineNumbersState { interface LineNumbersState {
$el: HTMLElement; $el?: HTMLElement;
totalLines: number; totalLines: number;
resizeObserver: ResizeObserver | null; resizeObserver: ResizeObserver | null;
init(): void; init(): void;
@@ -144,12 +144,13 @@ export const lineNumbers = (): LineNumbersState => ({
}, },
calculateLineNumbers() { calculateLineNumbers() {
const content = (this.$el as HTMLElement).querySelector('.post-content') as HTMLElement; const content = this.$el?.querySelector('.post-content') as HTMLElement;
const gutter = (this.$el as HTMLElement).querySelector('.post-line-gutter') as HTMLElement; const gutter = this.$el?.querySelector('.post-line-gutter') as HTMLElement;
if (!content || !gutter) return; if (!content || !gutter) return;
const defaultLineHeight = getDefaultLineHeight(content); const defaultLineHeight = getDefaultLineHeight(content);
const container = content.querySelector(':scope > div') as HTMLElement || content; const container = content.querySelector(':scope > div') || content;
const blockElements = container.querySelectorAll(':scope > *'); const blockElements = container.querySelectorAll(':scope > *');
gutter.innerHTML = ''; gutter.innerHTML = '';