【发布时间】:2021-10-04 22:52:42
【问题描述】:
我创建了一个联合类型的对象。它们都有一个字段role 来区分它们。
这里有老师和学生:
type User =
{
role: "student";
followClasses: string[];
} |
{
role: "teacher";
since: number;
};
然后我想创建一个函数来生成一个默认学生:
const defaultStudent = (): User => ({
role: "student",
followClasses: [],
});
但是由于返回类型是联合类型User,typescript不知道是学生,抛出当我输入以下内容时,我会收到警告:
const student = defaultStudent();
console.log(student.followClasses);
// Warning here ⮥
如何让函数defaultStudent有一个受约束的返回类型(学生)?
【问题讨论】:
标签: typescript types constraints field union