type 和 interface 区别?


type 用于描述一个对象类型。

特点:

  1、不能重复 type

  2、继承通过 & 

  3、支持 类型别名,联合类型,元组等类型

interface 接口用来定义一个类的结构,定义类的属性 和 方法。 同时接口也可以当成类型声明去使用。

特点:

  1、可以重复声明。

  2、接口中的属性都不能定义具体的值,方法都是抽象方法(无方法体)。接口只定义结构。

  3、继承通过 extends

  4、不支持 类型别名,联合类型,元组等类型

——————————————————————————————————————————————

TS 中的类

  TS 可以在属性前添加属性修饰符。

    public     修饰的属性可以在任意位置访问(修改)默认值。

    private     私有属性,私有属性只能在类内部进行访问(修改),通过在类中添加方法使得私有属性可以被外部访问。

——————————————————————————————————————————————

在定义函数或类时。如果遇到类型不明确时。就可以使用泛性 。

语法:

  <任意>

function fn(a: T): T{
    return a
}



//可以直接调用 具有泛型的  函数。

fn(10)   //-------->  不指定泛型,TS 可以自动对类型进行 推断。

fn('swt')  //-------->  指定泛型。


//__________________________________________________


function fn2(a: T, b: K): T{
    return a + b
}

fn2(123,'swt')

//__________________________________________________

interface Inter{
    length: number
}

function fn3(a: T): number{
    return a 
}

fn3(123456)

fn3({
    length:1000
})