TypeScript ローカルストレージの値取得時に、TS2345: Type ‘null’ is not assignableエラーが発生した時の解決法

ローカルストレージ JavaScript
この記事は約2分で読めます。

この記事の最終更新日: 2023年3月20日

TypeScriptで、以下のエラーが発生した際の解決法を紹介します。

TS2345: Argument of type 'string | null' is not assignable to parameter of type 'string'. Type 'null' is not assignable to type 'string'. 

このエラーは、JSON.parse() メソッドに渡された引数が string 型でないということを示しています。このエラーを修正するには、取得したデータが null の場合には何もしない、または別の値を代入するように条件分岐を追加することが必要です。

例えば、以下のように if 文を使って条件分岐することができます:

const reportSelectedLineNumberIdList = localStorage.getItem(memberId + 'ReportSelectedLineNumberIdList');
if (reportSelectedLineNumberIdList) {
  reportSelectedLineNumberIdList = JSON.parse(reportSelectedLineNumberIdList);
} else {
  reportSelectedLineNumberIdList = [];
}

この例では、localStorage.getItem() メソッドから取得したデータが存在する場合には、JSON.parse() メソッドを使って変換されます。そうでない場合には、空の配列が代入されます。

コメント

タイトルとURLをコピーしました