Skip to content

TS化の際に実装が変わってしまっている箇所がある。 #204

@shunsuke-kikuchi-dgbt

Description

@shunsuke-kikuchi-dgbt

src/core/index.js と src/core/index.ts の機能差分

  • pause コマンドの動作
  • addScenario 呼び出し引数
  • シーン動的読み込み

上記は、JS版から挙動が変わってるので、挙動をJS版に沿って修正が必要がである。

項目 JS版 TS版 影響
Enter/Click時の onNextHandler 呼び出し nullチェックなしで呼ぶ(src/core/index.js:71, src/core/index.js:84) nullチェックあり(src/core/index.ts:99, src/core/index.ts:113) TS版のほうが安全(初期化前呼び出しで落ちにくい)
moveTo の duration デフォルト line.duration | 1(src/core/index.js:483) line.duration || 1(src/core/index.ts:514) JS版はビット演算で意図しない値になる可能性
pause コマンドの動作 pause() を実行(src/core/index.js:525) stop() を実行(src/core/index.ts:556) TS版は一時停止でなく停止になる
route 時のBGMチェック this.bgm.isPlaying 直接参照(src/core/index.js:578) this.bgm && this.bgm.playing(src/core/index.ts:609) TS版のほうが null 安全
HTTPエラー時のJSON処理 else側で json 未定義参照(src/core/index.js:648) else側でも await response.json()(src/core/index.ts:679) JS版は実行時エラーの可能性
addScenario 呼び出し引数 第2引数なし(src/core/index.js:354, src/core/index.js:574, src/core/index.js:722) 第2引数 0 あり(src/core/index.ts:385, src/core/index.ts:605, src/core/index.ts:753) ScenarioManager実装次第で挿入位置が変わる可能性
ResourceManager 初期化 config importを渡す(src/core/index.js:47) 引数なし(src/core/index.ts:73) リソース設定の読み込み挙動が変わる可能性
サウンドキー生成(srcなし時) line.src.split(...) 前提(src/core/index.js:529, src/core/index.js:536) src なし時 bgm フォールバック(src/core/index.ts:560, src/core/index.ts:567) TS版のほうが安全
シーン動的読み込み 通常の import(...)(src/core/index.js:110) eval 経由の runtime import(src/core/index.ts:140) バンドル/実行環境で挙動差が出る可能性
style 削除ループ live collection直接走査(src/core/index.js:175) Array.from で固定化(src/core/index.ts:207) TS版のほうが削除漏れしにくい
clickWait の resolve値 resolve(null)(src/core/index.js:332) resolve()(src/core/index.ts:363) 実害はほぼなし(戻り値未使用なら同等)

Metadata

Metadata

Labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions