Skip to content
Go back

Astroテーマを自分用に修正するときのメモ

先日の続きで、Astroテーマに既存のコンテンツを読み込ませようとしたときに遭遇したことをメモします。

  • VSCodeには複数フォルダをルートにできるワークスペース機能がある
    • ルートフォルダをそれぞれ個別に開いたときのように動いてくれるはず
  • nullableな型はoptional chainingでアクセスする
    • nullでないなら通常通り処理し、そうでないなら処理せずにundefinedが返る
    • プロパティ(obj?.prop)、インデックスアクセス(obj?.[key])、関数呼び出し(fn?.(args))で使える
  • PrettierのMarkdownフォーマッタが英語と日本語の間に空白を挿入するので、使わないようにする

TypeScriptコンパイルオプション#

  • strict
    • 以下を有効化する:
      • alwaysStrict:ECMAScriptのstrictモードを強制する
      • strictNullChecks:nullableな型を厳密に扱う
      • strictBindCallApplycallbindapplyの呼び出しに型チェックが入る
      • strictBuiltinIteratorReturn:“ビルトイン・イテレータは、anyではなくundefinedTReturn型でインスタンス化される”
      • strictFunctionTypes:関数の型を厳密にチェックする
      • strictPropertyInitialization:クラスがnullableでないプロパティを初期化しないまま構築されないようにする
      • noImplicitAny:引数の型の未指定を禁止する
      • noImplicitThisthisの型の未指定を禁止する
      • useUnknownInCatchVariablescatchの引数がunknown型になる
  • exactOptionalPropertyTypes
    • 既定で、オプショナルなプロパティにundefinedを代入できないようにする
      • オプショナルはそのプロパティが定義されないことを許容するという意味で、undefinedを代入可能という意味ではない、らしい
  • noFallthroughCasesInSwitch
    • switch文におけるフォールスルーを禁止する
  • noImplicitOverride
    • オーバーライドするメソッドに必ずoverrideを書くよう強制する
  • noImplicitReturns
    • returnのないコードパスを禁止する
  • noPropertyAccessFromIndexSignature
    • 定義されていないプロパティへ.でアクセスすることを禁止する
    • biomeのuseLiteralKeysルールと衝突するので、どちらかをオフにすること
  • noUncheckedIndexedAccess
    • インデックスでアクセスした値をnullable型として扱う
    • 範囲外アクセスをチェックさせるため
  • noUnusedLocalsnoUnusedParameters
    • 変数の未使用をエラーにする
  • resolveJsonModule
    • JSONファイルをimportできるようにする
  • forceConsistentCasingInFileNames
    • ファイルパスをケース・センシティブに扱うことを強制する

おまけ:Obsidianにおける日本語環境の改善#

  • Obsidian標準の単語区切りは日本語を認識していない
    • 空白や句読点は認識してくれるが、かなや漢字は無視される
  • Word Splitting for Simplified Chinese in Edit Mode and Vim Modeプラグインは中国語用だけど日本語でも使えるみたい
    • デフォルト設定のままでも問題なく機能している

参考資料#