Closed Yokomi422 closed 3 months ago
時間割の型について、授業によっては週に2度講義があるものがあり、今回のコードでは表現出来ないように思います。 また、集中講義の場合は曜日か時限のどちらかの変数が邪魔になりそうです。
dayとperiodを持つ曜限専用の型(DayPeriod
のような?)を作り、
(DayPeriod)[] | string
と表現するのはどうでしょうか。stringの場合は集中講義です。
DayPeriod型を作るのはいいと思います! 集中講義は(DayPeriod)[] | stringだとどうやって表せますか?
集中講義は夏休みなどで短い期間に連続して行われる授業ですよね
集中講義がいつ行われるかは表現しない方針で考えていました。 スクレイピング結果のjsonにも
"periods": ["集中"],
としか書かれていないです。
なので適当な文字列でも入れておけば良いかと思いstringと書きました
stringで現させるものが限定されそうなので、
dayPeriod: DayPeriod | "集中";
など文字列のリテラル型で表現するのはどうでしょうか?
なるほど、分かりやすいですね! その実装でお願いします
ありがとうございます。
ですが、このdayPeriodの定義で週に2度開講される講義は表現できるのでしょうか?
DayPeriod[] | string
のように配列にする必要があるのでは、と思っています
例えば次の講義です。
{
"code": "30003",
"type": "基礎",
"category": "数理科学",
"semester": "S1",
"periods": ["月2", "水1"],
(略)
}
配列にするのを忘れていました
ありがとうございます! 良さそうに見えます
最後に一つだけ質問なのですが、day
はmon, tueのような英語表記ですか? それとも漢字表記の予定ですか?
授業詳細モーダルの実装の時、それに対応しようかと思います
今まで通り、曜日の英語の最初の3文字を入れようと思います。それも文字列リテラルの型に入れておいた方が良さそうですね
type DayPeriod = {
day: "mon" | "tue" | "wed" | "thu" | "fri" | "sat";
period: 1 | 2 | 3 | 4 | 5 | 6;
};
この変更とても助かります!
こちらこそ改善できてよかったです!
やったこと