美文网首页
type interface

type interface

作者: RickyWu585 | 来源:发表于2022-11-09 17:39 被阅读0次

    TS在声明的时候进行严格检查,赋值的时候比较松

    type:类型别名

    • 声明函数:可以单独声明一个函数,也可以声明一个带属性的函数
    type Fn = () => void
    
    type FnWithProps = {
      (a:number,b:number) : number
      props: string
    }
    
    const fnWithProps: FnWithProps = (x,y)=> x*y
    
    fnWithProps.props = "frank"
    

    interface 声明接口,描述对象的属性

    • 继承
    interface X {
      age: number
    }
    
    interface A1 extends Array<string>,X {
        name: string
    }
    
    type A2 = Array<string> & {name:string} & X
    
    • 描述函数
    interface Fn {
      (a:number,b:number): number
      name: string
    }
    
    const fn:Fn = (x,y) => x*y
    fn.name = "xxx"
    

    区别

    • type 可以描述基本类型和对象,interface 只能描述对象,不能描述基本类型
    • type 不可以重复声明,不可以重新赋值,interface可以重复声明,会自动合并
    • type继承是&,interface继承是extends
    • 因此,我们工作时,对外api尽量使用interface,方便扩展;对内api尽量使用type,防止代码分散

    相关文章

      网友评论

          本文标题:type interface

          本文链接:https://www.haomeiwen.com/subject/nyjntdtx.html