Closed7
GTUGGirls オンラインもくもく会: Type Challengesをやってみる!
イベント
サイト
方針
mosya<TC>を進めながら、内容をサバイバルTypeScriptや検索して調べる。
テンプレ
第X問: hogehoge!
問題
↓
回答
サバイバルさん
内容について調べたこと
第1問: Hello, World!
type HelloWorld = any;
↓
type HelloWorld = string;
サバイバルさん
TypeScriptは型がある(というかそこが特性)。
型注釈というので
const age: number = 25;
変数名の後ろにつけることもできるが、
型エイリアスとして。
type StringOrNumber = string | number;
型の内容に変数名みたいな命名をして宣言することもできる。
第1問: Hello, World!
type HelloWorld = any;
↓
type HelloWorld = string;
サバイバルさん
TypeScriptは型がある(というかそこが特性)。
型注釈というので
const age: number = 25;
変数名の後ろにつけることもできるが、
型エイリアスとして。
type StringOrNumber = string | number;
型の内容に変数名みたいな命名をして宣言することもできる。
第2問: Readonly型を定義してみよう❌
// MyReadonly<T>を実装してください
// MyReadonlyは、Tのプロパティをすべて読み取り専用にする型です
interface Todo {
title: string;
description: string;
}
const todo: MyReadonly<Todo> = {
title: "Hey",
description: "foobar",
};
↓
// MyReadonly<T>を実装してください
// MyReadonlyは、Tのプロパティをすべて読み取り専用にする型です
interface Todo {
title: string;
description: string;
}
type MyReadonly<T> = Readonly<T>;
const todo: MyReadonly<Todo> = {
title: "Hey",
description: "foobar",
};
サバイバルさん
Readonly<オブジェクト要素>
でプロパティの内容を読み取り専用にできる。オブジェクト要素だから今回のインターフェース Todo
も設定できる。
内容としては
Readonly<Todo>
ができれば良さそうだけど、MyReadonly<Todo>
として一段間踏むようなパズル要素が問題の趣旨のよう。
<Todo>
としているので型変数を使用するみたいなのでMyReadonly
という型エイリアスを定義して型引数<T>
をそのまま渡すことにした。
ジェネリック 型変数
方向転換
mosya<TC>の飛び飛びだと解けない感じなので
でローカル環境を作ることに。
実行は下記で。
教材はType-challengesで推奨されていた
に変更。
4: [easy] Pick
問題
これを見る
このスクラップは15日前にクローズされました