TS

267 阅读1分钟

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的成员不能在声明它的类的外部访问