测试
/** 已实现的枚举类 */
type SlideState =
| "DRAFT"
| "BEFORE_CLASS" // 课前
| "IN_CLASS" // 课中
| "AFTER_CLASS" // 课后
| "FINISH"; // 最终截止
type QuizState =
| "NOT_STARTED" // 未开始
| "ONGOING" // 正在进行
| "CLOSED"; // 已结束
interface QuizSerializer<T extends QuizState> {
id: number;
name: string; // 测试名
state: T; // 考试状态
course: CourseSerializer; // 课程详情
quizTime: SlideState;
slide: SlideSerializer;
questions: Array<
T extends "CLOSED"
? QuestionWithStudentAnswerSerializer
: QuestionWithoutAnswerSerializer
>;
}
interface QuizBasicSerialzer extends Omit<QuizSerialzier, "questions"> {
questionNumber: number; // 题目数量
}