Code Fix

TypeScriptエラー 練習問題 102問(全問無料)

コンパイルエラー・実行時エラー・ロジックの誤りを、空欄補充で直す練習問題です。登録不要でその場で解けます。

エラーメッセージで探す

今出ているエラーメッセージをそのまま貼り付けてください。行番号や変数名が違っていても、エラーの種類が一致すれば見つかります。

エラー難易度種別
is not assignable to type の原因と直し方 #1 初級コンパイル
is not assignable to type の原因と直し方 #2 初級コンパイル
is not assignable to type の原因と直し方 #3 初級コンパイル
implicitly has an 'any' type の原因と直し方 #1 初級コンパイル
implicitly has an 'any' type の原因と直し方 #2 初級コンパイル
implicitly has an 'any' type の原因と直し方 #3 初級コンパイル
Cannot find name の原因と直し方 #1 初級コンパイル
Cannot find name の原因と直し方 #2 初級コンパイル
Cannot find name の原因と直し方 #3 初級コンパイル
Expected N arguments, but got M の原因と直し方 #1 初級コンパイル
Expected N arguments, but got M の原因と直し方 #2 初級コンパイル
Expected N arguments, but got M の原因と直し方 #3 初級コンパイル
引数の型が合わないエラーの原因と直し方 #1 初級コンパイル
引数の型が合わないエラーの原因と直し方 #2 初級コンパイル
引数の型が合わないエラーの原因と直し方 #3 初級コンパイル
必須プロパティの書き忘れエラーの原因と直し方 #1 初級コンパイル
必須プロパティの書き忘れエラーの原因と直し方 #2 初級コンパイル
必須プロパティの書き忘れエラーの原因と直し方 #3 初級コンパイル
未定義プロパティを書いたエラーの原因と直し方 #1 初級コンパイル
未定義プロパティを書いたエラーの原因と直し方 #2 初級コンパイル
未定義プロパティを書いたエラーの原因と直し方 #3 初級コンパイル
Property does not exist on type の原因と直し方 #1 初級コンパイル
Property does not exist on type の原因と直し方 #2 初級コンパイル
Property does not exist on type の原因と直し方 #3 初級コンパイル
Cannot assign to because it is a constant の原因と直し方 #1 初級コンパイル
Cannot assign to because it is a constant の原因と直し方 #2 初級コンパイル
Cannot assign to because it is a constant の原因と直し方 #3 初級コンパイル
非nullアサーション(!)がコンパイラを騙して実行時エラーになる #1 初級実行時
非nullアサーション(!)がコンパイラを騙して実行時エラーになる #2 初級実行時
非nullアサーション(!)がコンパイラを騙して実行時エラーになる #3 初級実行時
配列の範囲外アクセスがエラーにならずundefinedになる(TypeScriptでも変わらない) #1 初級ロジック
配列の範囲外アクセスがエラーにならずundefinedになる(TypeScriptでも変わらない) #2 初級ロジック
配列の範囲外アクセスがエラーにならずundefinedになる(TypeScriptでも変わらない) #3 初級ロジック
文字列メソッドは元の文字列を変更せず新しい文字列を返す #1 初級ロジック
文字列メソッドは元の文字列を変更せず新しい文字列を返す #2 初級ロジック
文字列メソッドは元の文字列を変更せず新しい文字列を返す #3 初級ロジック
Array.prototype.sort()が数値を文字列として並べ替える理由 #1 初級ロジック
Array.prototype.sort()が数値を文字列として並べ替える理由 #2 初級ロジック
Array.prototype.sort()が数値を文字列として並べ替える理由 #3 初級ロジック
文字列と数値の+の左結合で意図しない連結になる #1 初級ロジック
文字列と数値の+の左結合で意図しない連結になる #2 初級ロジック
文字列と数値の+の左結合で意図しない連結になる #3 初級ロジック
is possibly 'undefined' の原因と直し方 #1 中級コンパイル
is possibly 'undefined' の原因と直し方 #2 中級コンパイル
is possibly 'undefined' の原因と直し方 #3 中級コンパイル
union型(string | number)のメソッド呼び出しで型エラーになる理由 #1 中級コンパイル
union型(string | number)のメソッド呼び出しで型エラーになる理由 #2 中級コンパイル
union型(string | number)のメソッド呼び出しで型エラーになる理由 #3 中級コンパイル
incorrectly implements interface の原因と直し方 #1 中級コンパイル
incorrectly implements interface の原因と直し方 #2 中級コンパイル
incorrectly implements interface の原因と直し方 #3 中級コンパイル
文字列リテラルをenum型の引数に渡すとエラーになる理由 #1 中級コンパイル
文字列リテラルをenum型の引数に渡すとエラーになる理由 #2 中級コンパイル
文字列リテラルをenum型の引数に渡すとエラーになる理由 #3 中級コンパイル
readonly配列にpushしようとするとdoes not exist on typeになる理由 #1 中級コンパイル
readonly配列にpushしようとするとdoes not exist on typeになる理由 #2 中級コンパイル
readonly配列にpushしようとするとdoes not exist on typeになる理由 #3 中級コンパイル
abstractクラスを直接newした原因と直し方 #1 中級コンパイル
abstractクラスを直接newした原因と直し方 #2 中級コンパイル
abstractクラスを直接newした原因と直し方 #3 中級コンパイル
ジェネリクスの型引数を明示すると戻り値の型チェックが効く #1 中級コンパイル
ジェネリクスの型引数を明示すると戻り値の型チェックが効く #2 中級コンパイル
ジェネリクスの型引数を明示すると戻り値の型チェックが効く #3 中級コンパイル
No overload matches this call の原因と直し方 #1 中級コンパイル
No overload matches this call の原因と直し方 #2 中級コンパイル
No overload matches this call の原因と直し方 #3 中級コンパイル
asによる型アサーションがコンパイラを騙して実行時エラーになる #1 中級実行時
asによる型アサーションがコンパイラを騙して実行時エラーになる #2 中級実行時
asによる型アサーションがコンパイラを騙して実行時エラーになる #3 中級実行時
switchで一部returnを書き忘れた原因と直し方 #1 中級コンパイル
switchで一部returnを書き忘れた原因と直し方 #2 中級コンパイル
switchで一部returnを書き忘れた原因と直し方 #3 中級コンパイル
タプル型は要素数も型として扱われる(余分な要素はエラーになる) #1 中級コンパイル
タプル型は要素数も型として扱われる(余分な要素はエラーになる) #2 中級コンパイル
タプル型は要素数も型として扱われる(余分な要素はエラーになる) #3 中級コンパイル
インデックスシグネチャと矛盾する型のプロパティを宣言するとエラーになる #1 中級コンパイル
インデックスシグネチャと矛盾する型のプロパティを宣言するとエラーになる #2 中級コンパイル
インデックスシグネチャと矛盾する型のプロパティを宣言するとエラーになる #3 中級コンパイル
Mapped typeも通常と同じ型チェックを受ける理由 #1 上級コンパイル
Mapped typeも通常と同じ型チェックを受ける理由 #2 上級コンパイル
Mapped typeも通常と同じ型チェックを受ける理由 #3 上級コンパイル
keyof typeofで作ったキーの型は、存在しないキーを渡すとエラーになる #1 上級コンパイル
keyof typeofで作ったキーの型は、存在しないキーを渡すとエラーになる #2 上級コンパイル
keyof typeofで作ったキーの型は、存在しないキーを渡すとエラーになる #3 上級コンパイル
ジェネリクスのextends制約を満たさない型を渡すとエラーになる #1 上級コンパイル
ジェネリクスのextends制約を満たさない型を渡すとエラーになる #2 上級コンパイル
ジェネリクスのextends制約を満たさない型を渡すとエラーになる #3 上級コンパイル
型注釈(: Type)はプロパティを消さずに「見えなく」する。satisfiesとの違い #1 上級コンパイル
型注釈(: Type)はプロパティを消さずに「見えなく」する。satisfiesとの違い #2 上級コンパイル
型注釈(: Type)はプロパティを消さずに「見えなく」する。satisfiesとの違い #3 上級コンパイル
同名interfaceのマージで型が矛盾した原因と直し方 #1 上級コンパイル
同名interfaceのマージで型が矛盾した原因と直し方 #2 上級コンパイル
同名interfaceのマージで型が矛盾した原因と直し方 #3 上級コンパイル
変数経由なら余分なプロパティが通る理由 #1 上級コンパイル
変数経由なら余分なプロパティが通る理由 #2 上級コンパイル
変数経由なら余分なプロパティが通る理由 #3 上級コンパイル
as unknown as Xの二重キャストは型チェックを完全に迂回し、実行時エラーの原因になる #1 上級実行時
as unknown as Xの二重キャストは型チェックを完全に迂回し、実行時エラーの原因になる #2 上級実行時
as unknown as Xの二重キャストは型チェックを完全に迂回し、実行時エラーの原因になる #3 上級実行時
数値enumはObject.keys()で要素数が2倍になる(逆引きマッピングの副作用) #1 上級ロジック
数値enumはObject.keys()で要素数が2倍になる(逆引きマッピングの副作用) #2 上級ロジック
数値enumはObject.keys()で要素数が2倍になる(逆引きマッピングの副作用) #3 上級ロジック
広告
広告スロット(未設定)

出題モード

まとめて解きたいときはこちら

このモードで始める

選んだモードは次の問題への移動にも適用されます。記録は端末内にのみ保存されます。

エラーの種類について

TypeScriptのエラーは大きく3種類に分かれます。コンパイルエラーtscが型検査・構文解析の段階で検出するもので、JSファイルが一切出力されません。構文の誤りも型の不一致も同じ形式のエラーとして報告されます。実行時エラーはコンパイルは通るものの、実行中にNode.jsが投げる例外です。TypeScriptでは変数名のタイプミスや存在しないプロパティへのアクセスの大半はコンパイル時に検出されるため、実行時エラーとして残るのは!(非nullアサーション)やas(型アサーション)で型検査を迂回した場合が中心です。ロジックの誤りはどちらのエラーも出ませんが結果が期待と違うもので、配列の範囲外アクセスがundefinedを返す挙動などが典型です。

最も発見が遅れるのは3つ目です。このサイトではロジックの誤りも問題に含めており、コンソール表示が赤ではなく琥珀色になります。

初級から順に解く

広告
広告スロット(未設定)