Summary
In packages/elements/src/code-block.tsx, TokenizedCode defines fg/bg as required string, but codeToTokens returns TokensResult where fg/bg are optional (string | undefined). With strictNullChecks: true, this triggers a type error.
Steps to Reproduce
- Use
packages/elements/src/code-block.tsx as-is.
- Enable
strictNullChecks (or strict: true) in TS config.
- Type check the project.
Expected
No TypeScript error.
Actual
Type error:
Type 'string | undefined' is not assignable to type 'string'.
References
code-block.tsx: const tokenized: TokenizedCode = { tokens: result.tokens, fg: result.fg, bg: result.bg }


- Shiki types:
TokensResult.fg? / bg? are optional.

Possible Fixes
- Make
TokenizedCode use string | undefined for fg/bg
- Or provide defaults (
fg: result.fg ?? "inherit", bg: result.bg ?? "transparent")
- Or use non-null assertion if intended
Environment
- TypeScript: (e.g.) 5.x
- Shiki: 3.21.0
- strictNullChecks: true