Upgrade to Pro — share decks privately, control downloads, hide ads and more …

キャリア25年目にしてTypeScript に出会うまで - 「型」を通じて振り返るプログラミ...

キャリア25年目にしてTypeScript に出会うまで - 「型」を通じて振り返るプログラミング言語遍歴 / Meeting TypeScript After 25 Years in Tech - Looking Back at My Programming Language Journey Through "Types"

登壇者名: かねうちてつや
登壇したイベントタイトル: TSKaigi 2026
登壇したイベントのURL: https://2026.tskaigi.org/
登壇したイベントの登壇者URL: https://2026.tskaigi.org/talks/83

More Decks by 株式会社ビットキー / Bitkey Inc.

Other Decks in Technology

Transcript

  1. /** 例:ディレクトリ内のファイル一覧を表わす List 実装 */ public class FileList extends AbstractList<File>

    { private final File[] files; public FileList(File directory) { this.files = directory.listFiles(); } @Override public File get(int index) { return files[index]; } @Override public int size() { return files.length; } }
  2. // 文字列オブジェクト NSString *hello = @"hello"; // 1個の文字列要素を持つ配列オブジェクトを作る NSArray *array

    = [NSArray arrayWithObject:hello]; // 最初の要素(@"hello")を取得 // 戻り値が id 型(任意のオブジェクト)のため、型チェックをすり抜けて代入できてしまう NSURL *url = [array firstObject]; // そのまま後続のコードを書ける(実行時にエラー) NSURLRequest *req = [NSURLRequest requestWithURL:url];
  3. let hello = "hello" // String型 let array = [hello]

    // [String]型 let url = array.first // String?型 (Optional) let req = URLRequest(url: url) // URL 型が必要なのでコンパイルエラー
  4. const hello = "hello"; // string型 const array = [hello];

    // string[]型 const url = array.at(0); // string | undefined型 const req = new Request(url); // string 型が必要なのでコンパイルエラー let hello = "hello" // String型 let array = [hello] // [String]型 let url = array.first // String?型 (Optional) let req = URLRequest(url: url) // URL 型が必要なのでコンパイルエラー