TS 中 enum type 与interface的区别与用

493 阅读2分钟

TS 中 enum type 与interface的区别与用

1.何时使用 enum 其实在TS中 ENUM 表示的就是一种映射关系,比如我们在进行写授权管理的时候,一般会有一个权限状态permission,permission有1,2,3,4这几个值,代表不同的权限类型,这个时候我们就可以用TS的枚举类型. enum Permission{ read:1, write:2, modyfy:3, manager:4 } 枚举的值一般可以用number,string两种类型,但是在实际工作中的时候,我们一般建议使用number类型,如果使用string类型也是可以的,但是会显得比较呆,而且用number类型的话,可以只写第一个值,后面的值即使不写,在编译的时候也会自动递增.

2.TS中的type 简单的说,TS中的type其实就是给类型起一个别名而已,它并不实际创造一个类型,比如:type A=string;就是代表你给string类型起了一个别名A,在使用的时候可以 type B=A,你会发现此时B的类型是string,而不是A,因为他只是一个别名而已. type不仅可以描述基本类型还可以描述对象,任何类型都可以用type,它的使用范围是非常广泛的. 3.TS中的interface TS中除了type类型,还有一个interface接口,简单的来说,interface是用来描述一个对象的属性而声明的接口,interface是OOP面向对象的产物,一般用来描述对象,约束class. 4.type与interface有哪些区别 笔者认为:type与interface的区别主要有以下3点: 区别1:interface 只描述对象的属性 而type可以描述所有的数据类型 区别2:type只是类型的别名,并不是一个新的类型声明 而interface则是一个新的类型声明 区别3:interface描述的对象可以重新扩展和赋值 而用type描述的对象不能重新扩展和赋值,一般来说:如果是对外的话,一般用interface,方便使用者重新扩展,但是如果是对内话,建议用type 禁止其他同事对同一个对象进行修改和扩展,防止数据分散