首页 > 其他 > 详细

Typescript学习笔记-类型保护与类型区分

时间:2020-02-15 19:19:41      阅读:84      评论:0      收藏:0      [点我收藏+]

主要用于在编写代码的时候,少用类型断言,更好的可读性。贴代码

//person is Teacher 主谓宾语句进行类型保护,主要用于在编写代码的时候,少用类型断言,更好的可读性。
interface Teacher {
    teach(): void;
}
interface Student {
    learn(): void;
}
interface Docter {
    nice(): void;
}
function getPerson(): Teacher | Student | Docter{
    return {
        teach: () => { }
    } as Teacher;
}

function isTeacher(person: Teacher | Student | Docter): person is Teacher {
    return (<Teacher>person).teach !== undefined
}
function isStudent(person: Teacher | Student | Docter): person is Student {
    return (<Student>person).learn !== undefined
}
const person = getPerson();
if (isTeacher(person)) {
    person.teach();
} else if (isStudent(person)) {
    person.learn();
} else {
    person.nice();
}

Typescript学习笔记-类型保护与类型区分

原文:https://www.cnblogs.com/bookingmo/p/12313020.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!