Skip to content

Commit 0d318bc

Browse files
committed
Make field optional (to better reflect usage)
To be honest, TypeScript shouldn't have allowed the field to be non-nullable to begin with. Please see: microsoft/TypeScript#17236
1 parent d3656c0 commit 0d318bc

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

src/Rendering/Html/HtmlRenderer.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ export class HtmlRenderer extends Renderer {
214214
return this.htmlElement(
215215
'sup',
216216
[this.footnoteReferenceInnerLink(footnote)], {
217-
id: this.footnoteReferenceHtmlId(footnote.referenceNumber),
217+
id: this.footnoteReferenceHtmlId(footnote.referenceNumber!),
218218
class: cssClassAttrValue('footnote-reference')
219219
})
220220
}
@@ -346,16 +346,16 @@ export class HtmlRenderer extends Renderer {
346346
const { referenceNumber } = footnote
347347

348348
return new Up.Link(
349-
[new Up.Text(referenceNumber.toString())],
350-
fragmentUrl(this.footnoteHtmlId(referenceNumber)))
349+
[new Up.Text(referenceNumber!.toString())],
350+
fragmentUrl(this.footnoteHtmlId(referenceNumber!)))
351351
}
352352

353353
private footnoteInFootnoteBlock(footnote: Up.Footnote): string {
354354
const linkBackToReferenceContainer =
355355
this.htmlElement(
356356
'dt',
357357
[this.footnoteLinkBackToReference(footnote)],
358-
{ id: this.footnoteHtmlId(footnote.referenceNumber) })
358+
{ id: this.footnoteHtmlId(footnote.referenceNumber!) })
359359

360360
const bodyContainer =
361361
this.htmlElement('dd', footnote.children)
@@ -367,8 +367,8 @@ export class HtmlRenderer extends Renderer {
367367
const { referenceNumber } = footnote
368368

369369
return new Up.Link(
370-
[new Up.Text(referenceNumber.toString())],
371-
fragmentUrl(this.footnoteReferenceHtmlId(referenceNumber)))
370+
[new Up.Text(referenceNumber!.toString())],
371+
fragmentUrl(this.footnoteReferenceHtmlId(referenceNumber!)))
372372
}
373373

374374
private playableMediaElement(playableMedia: Up.Audio | Up.Video, mediaTagName: string): string {

src/SyntaxNodes/Footnote.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ import { Renderer } from '../Rendering/Renderer'
44

55

66
export class Footnote extends RichInlineSyntaxNode {
7-
referenceNumber: number
7+
// Before the document is finalized, this field will always be undefined. Afterward, it will
8+
// never be null.
9+
//
10+
// TODO: Research the best way to represent this using the type system. Should we create two
11+
// versions of this class: One pre-finalization and one post-finalization?
12+
referenceNumber?: number
813

914
constructor(
1015
children: InlineSyntaxNode[],

0 commit comments

Comments
 (0)