IT-Q
シナリオ/TypeScript 基礎編(20問・追撃なし)

TypeScript 基礎編(20問・追撃なし)

TypeScript を「使ったことはある」状態から、面談で前提として問われる型の考え方を埋めるための20問。 any と unknown、絞り込み、ジェネリクス、tsconfig、6.0 と 7.0 の変更点まで。全問4択、追撃はありません。

20 問20 ノード追撃なし・約5分

答えるまで正解と解説は表示されません。下の一覧は解説つきのカタログなので、答えを見たくない場合は先に始めてください。

質問カタログ(模範解答つき)

面接官が何を見ているか、模範解答は何かを先に読みたい場合はこちらから。

  1. 01any と unknown は、どちらも「何でも入る型」です。何が違いますか。
  2. 02関数の引数に型を書かないと、どうなりますか。
  3. 03interface と type(型エイリアス)は、どう使い分けますか。
  4. 04string | number 型の引数を受け取って、文字列のときだけ toUpperCase() を呼びたい。どうしますか。
  5. 05{ kind: "circle"; radius: number } と { kind: "square"; size: number } のユニオン型を扱うとき、何を手がかりに分岐しますか。
  6. 06型アサーション(as)を使うのは、どういう場面ですか。
  7. 07user!.name の「!」は何をしていますか。
  8. 08tsconfig.json に strict を書いていないプロジェクトでは、strict は有効ですか。
  9. 09strictNullChecks が有効だと、何が変わりますか。
  10. 10ジェネリクスは、どういうときに使いますか。
  11. 11既存の User 型から、すべてのプロパティを省略可能にした型を作りたい。どうしますか。
  12. 12const colors = ["red", "green"] as const の as const は、何をしていますか。
  13. 13satisfies 演算子は、型注釈(const x: T = ...)と何が違いますか。
  14. 14TypeScript の enum について、注意すべきことはどれですか。
  15. 15{ name: string } 型を受け取る関数に、{ name: "a", age: 3 } を変数に入れてから渡すと、どうなりますか。
  16. 16API から受け取った JSON に type User を付けました。実行時に中身が User の形であることは保証されますか。
  17. 17型定義が同梱されていない npm パッケージを使うと、型が付きません。どうしますか。
  18. 18never 型は、どういう値の型ですか。
  19. 19配列 const list: string[] = [] で、list[0] の型は何になりますか(既定の設定で)。
  20. 20TypeScript 7.0 は、それまでの版と何が違いますか。