$<T> returns the element type it is given and assumes the element is there: 122 lookups take their type from the tag their id is on in the markup. A handler reads its target through a cast, since a typed element will not take a handler whose event names a narrower target. strictNullChecks found no bug the page had; its 94 places were values the code already handles in ways the type-check could not follow (data- attributes the page writes, a map entry set the line before, Share drawn only for an item with a link), each now said so. isPlayable stays a plain boolean: as a type guard its false would have meant "no file", and it is also false for a file that is not audio or video. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
15 lines
560 B
JSON
15 lines
560 B
JSON
{
|
|
// Type-checks web/src (npx tsc). Nothing is emitted: web/build.mjs does that with swc.
|
|
// The files are one script in one scope, not modules, which is why there are no imports.
|
|
"compilerOptions": {
|
|
"target": "es2022",
|
|
"lib": ["es2022", "dom", "dom.iterable"],
|
|
"noEmit": true,
|
|
// Strict throughout (#235, #236). $ assumes the element is there: the page check proves the
|
|
// ones wired at load exist, and a lookup that may find nothing says so with ?.
|
|
"strict": true,
|
|
"skipLibCheck": true
|
|
},
|
|
"include": ["web/src/*.ts"]
|
|
}
|