TypeScript基础入门 - 类型兼容性 - 枚举和类
项目实践仓库
1 | https://github.com/durban89/typescript_demo.git |
为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能直接运行看到输出的结果。
1 | npm install -D ts-node |
后面自己在练习的时候可以这样使用
1 | npx ts-node 脚本路径 |
枚举
枚举类型与数字类型兼容,并且数字类型与枚举类型兼容。不同枚举类型之间是不兼容的。比如,
1 | enum Status { |
运行后会有类似如下的错误提示
1 | ⨯ Unable to compile TypeScript: |
类
类与对象字面量和接口差不多,但有一点不同:类有静态部分和实例部分的类型。 比较两个类类型的对象时,只有实例的成员会被比较。 静态成员和构造函数不在比较的范围内。如下实例演示
1 | class PersonType { |
当我们运行这段代码的时候,会发现没有报任何错误
类的私有成员
类中的私有成员和受保护成员会影响其兼容性。检查类的实例是否兼容时,如果目标类型包含私有成员,则源类型还必须包含源自同一类的私有成员。同样,这同样适用于具有受保护成员的实例。这允许类与其超类兼容,但不允许使用来自不同继承层次结构的类,否则这些类具有相同的形状。
本实例结束实践项目地址
1 | https://github.com/durban89/typescript_demo.git |