TS
定义
TS是JavaScript超集,支持面向对象编程的概念和静态类型,兼容所有js语法.但是需要编译成js后才能运行
interface和type
相同点
都可以描述对象或者函数
不同点
type可以定义基础类型,元组,联合声明等.interface不行
interface可以被派生类实现,而type不能被实现
inerface支持同时声明和默认导出,type必须先声明后导出.
interface可以多次定义并被视为合并; type代码会爆红,然后会后面覆盖前面.
interface和type的继承形式有区别.但是可以相互继承.type使用&,interface使用extends.相互继承的时候.如果是继承type就用&,继承interface用extends.所以使用的符号取决于继承谁.
枚举和常量枚举
常量枚举只能使用常量枚举表达式,并且不同于常规的枚举,它们在编译阶段会被删除。
const和readonly的区别
const是值不能被改
readonly是属性不能被修改
内置高级方法
Omit<T, K>忽略T中的某些属性.
Merge<O1, O2>将两个对象的属性合并.
Partial<T>把所有属性变为可选
Required<T>把所有属性变为必须
public protected private
public
ts中默认是public,没有什么限制
protected
protected的成员不能在声明它的类的外部访问,但在派生类(子类)里面可用
private
private的成员不能在声明它的类的外部访问