ウェブエンジニア問題集

TypeScript 問題集

TypeScriptの基本文法、型システム、Utility Types、およびよくあるコンパイルエラーに関する問題です。

36 ・ 7 タグ

TypeScript ランダムクイズ

問題数を選んでランダムに出題

TypeScriptの問題一覧

すべてES ModulesjavascriptTypeORMZodエラー便利基礎

該当件数36

1

TypeScriptで「この呼び出しに一致するオーバーロードはありません(ts2769)」というエラーが発生する主な原因として、最も適切なものはどれか?

2

TypeScriptで関数呼び出し時に「TS2345: Argument of type 'string' is not assignable to parameter of type 'number'.」が発生する原因として正しいものはどれか?

#エラー
3

「TS2531: Object is possibly 'null'.」というエラーの安全な解決策は?

4

変数への代入時に「TS2322: Type 'X' is not assignable to type 'Y'.」が出ました。どう対応すべきですか?

5

オブジェクト操作時に「TS2339: Property '...' does not exist on type '...'.」が出ました。原因として考えられるのは?

6

TypeScriptで「TS2769: No overload matches this call.」というエラーが発生しやすい状況として、最も適切なものはどれか?

#エラー
7

外部の型を自作型へ変換する際、`as unknown as User` と unknown を経由する理由と、any との違いは?

8

TypeScriptにおいて、変数の型をコンパイラが自動的に推測する機能を何と呼びますか?

9

オブジェクトの構造を定義する際、「interface」と「type(型エイリアス)」のどちらを使うべきですか?

10

複数の型のうち、いずれか1つの型であることを示す「string | number」のような書き方を何と呼びますか?

11

型を引数として受け取り、汎用的なコンポーネントや関数を作るための仕組みは?

12

既存の型から、すべてのプロパティを「省略可能」にした新しい型を作るUtility Typeは?

13

既存の型から、特定のプロパティだけを抽出して新しい型を作るUtility Typeは?

14

要素の数と、それぞれの要素の型が固定された配列(例:[string, number])を何と呼びますか?

15

オブジェクトのキー名を文字列のリテラル型のユニオン("name" | "age" など)として取得する演算子は?

16

JavaScriptの値を元にして、TypeScriptの型を抽出する演算子は?

17

プロパティのキーがstring、値がnumberのオブジェクト(連想配列)を定義するのに適したUtility Typeは?

18

絶対に値が返らない(例外を投げる、または無限ループする)関数の戻り値の型は?

19

TypeScriptにおいて、どんな値でも代入できる「なんでも入る型」として any 型がありますが、型チェックを放棄してしまうため安全ではありません。代わりに、どんな値でも代入できるが、実際に使用する前に「型チェック(型ガードなど)」を強制する、より安全な推奨される型はどれですか?

#エラー
20

変数の値が後から変更されないことを保証する、プロパティや配列に付与する修飾子は?

21

コンパイル時の厳格な型チェックを一括で有効にする、tsconfig.jsonの推奨設定は?

22

TypeORMでマイグレーションファイルを自動生成し、実行するための正しいコマンドの組み合わせはどれですか?

#TypeORM
23

TypeScriptプロジェクトで `process.env` を使用した際に `error TS2591: Cannot find name 'process'` が発生した。解決策として正しいものはどれか?

24

TypeScriptにおいて、変数 user が null や undefined になる可能性がある型(例: User | null)を持っています。開発者が「ここでは絶対に値が存在する」と確信している場合、コンパイルエラーを回避して name プロパティにアクセスするための正しい書き方はどれですか?

25

TypeScriptで「error TS2307: Cannot find module 'resend' or its corresponding type declarations」が発生した。最初に確認すべきこととして最も適切なものはどれか?

#エラー
26

TypeScriptで、キーが文字列で値が不定のオブジェクトを定義する際、`Record<string, any>` ではなく `Record<string, unknown>` を使用する最大のメリットは何ですか?

27

TypeORMを使用してMySQLデータベースからデータを取得(`EntityManager.find`)しようとしたところ、以下のスタックトレースを含むエラーが発生しました。 `SyntaxError: Unexpected strict mode reserved word at compileSourceTextModule...` (中略) `at tryToRequire (/app/node_modules/typeorm/util/ImportUtils.js)` `TypeORMError: Connection is not established with mysql database` このエラーの根本的な原因として、最も可能性が高いものはどれですか?

#ES Modules#TypeORM
28

開発環境でTypeScriptを実行する際、`tsc`でJavaScriptに変換してから`node`で実行する2ステップの代わりに、`ts-node`というツールを使うと1コマンドで実行できます。この`ts-node`の内部的な仕組みや特徴として、最も適切なものはどれですか?

#エラー
29

TypeScript で `as unknown as` という二重キャスト(Double Assertion)が必要になるのはどのような場合ですか?

30

TypeScript で以下の型定義があるとき、コンパイルエラーになるコードはどれですか? type Role = 'admin' | 'editor' | 'viewer'; type RoleConfig = Record<Role, { label: string; canEdit: boolean }>; const config: RoleConfig = { ... };

#エラー
31

Zod でバリデーションを行う際、schema.parse(data) と schema.safeParse(data) の違いについて正しい説明はどれか。

#エラー#便利#基礎#javascript#Zod
32

以下の Zod スキーマから TypeScript の型を導出したい。正しい書き方はどれか。 const UserSchema = z.object({ name: z.string(), age: z.number().optional(), });

#便利#javascript#Zod
33

TypeScript の as による型アサーションについて、正しい説明はどれですか?

#基礎
34

次のコードのうち、型アサーションを使っているのはどれですか? // A const name = 'Alice'; // B const age: number = 25; // C const data = JSON.parse(json) as User; // D function greet(user: User) { return user.name; }

#基礎
35

Zod の z.lazy() はどのような場面で使うのが正しいですか?

#便利#Zod
36

次の identity 関数について、正しい説明はどれですか? function identity<T>(value: T): T { return value; } const a = identity<string>('hello'); const b = identity(42);

#便利#基礎

TypeScriptとは

TypeScriptはMicrosoftが開発したJavaScriptの上位互換言語で、静的型付けシステムを追加しています。型推論、ジェネリクス、ユニオン型、Utility Types(Partial、Pick、Omit等)、型ガードなど強力な型システムにより、大規模アプリケーションの開発生産性と保守性を大幅に向上させます。

なぜTypeScriptを学ぶべきか

TypeScriptはモダンなフロントエンド・バックエンド開発で事実上の標準となりつつあります。React、Vue、Angular、Next.js、NestJSなど主要フレームワークがTypeScript対応を推奨しています。型安全性によりバグの早期発見が可能で、エディタの補完も強化されるため、開発体験(DX)が大幅に向上します。

出題トピック

型システムの基礎

プリミティブ型、オブジェクト型、配列型、タプル型、ユニオン型、リテラル型、型エイリアスとインターフェースの使い分けを出題します。

ジェネリクス

ジェネリック関数、ジェネリッククラス、制約付きジェネリクス(extends)、条件型などの高度な型パターンを扱います。

Utility Types

Partial、Required、Pick、Omit、Record、Exclude、Extract、ReturnType、Parameters などの組み込みユーティリティ型を問います。

型ガードと型の絞り込み

typeof、instanceof、in演算子、ユーザー定義型ガード、Discriminated Unionによる型の絞り込みパターンを出題します。

こんな方におすすめ

  • JavaScriptからTypeScriptへの移行を考えている方
  • 型システムの理解を深めたいフロントエンド開発者
  • 大規模プロジェクトでの開発品質を向上させたい方
  • React + TypeScript での開発を学びたい方

TypeScriptに関するよくある質問

TypeScriptはJavaScriptの知識がなくても学べますか?
TypeScriptはJavaScriptのスーパーセットであるため、JavaScriptの基礎知識が前提となります。まずJavaScriptの基本を理解してからTypeScriptに進むことをおすすめします。
型定義が面倒に感じますが、本当にメリットがありますか?
初期の学習コストはありますが、TypeScriptの型推論は非常に強力で、多くの場合は明示的な型定義なしでも型安全になります。プロジェクトが大規模になるほど、バグの予防、リファクタリングの安全性、コード補完の恩恵が大きくなります。
anyとunknownはどう使い分けますか?
anyはすべての型チェックを無効化するため、使用は極力避けるべきです。unknownは型安全な any で、使用前に型の絞り込み(型ガード)が必須です。外部データの受け取りにはunknownを使い、型ガードで安全に処理しましょう。

関連する問題集