ts新增类型 - 断言 - 接口 - any

26 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第28天,点击查看活动详情

7.类型断言    as 

as的作用就是将大类型(document.createElement),变为小类型(HTMLAnchorElement)

 const aLink = document.createElement('a') as HTMLAnchorElement

鼠标放在aLink上,就会显示   HTMLAnchorElement

8.接口   interface

当一个对象类型被多次使用时,一般会使用接口(interface)来描述对象的类型,达到复用的目的

都可以定义对象

 interface Iperson{
    name:string
    age:number
    sayHello() :void
  }
  const person:Iperson = {
    name:'小花',
    age:18,
    sayHello() {
      
    },
  }

然后最开始的一篇文章里面也提到 type也可以自定义对象,也能起到复用的效果,那启不是跟接口功能一样?

type 跟 接口 interface  区别

是因为

①type不限于对象,它也可以自定义其他类型

而interface只能定义对象

②type不能继承

interface能继承

接口 继承格式(extends)

格式:

接口1 会包含所有接口2的属性

interface 接口1 extends 接口2 {

接口1的自己的类型

}

例如

interface Ipoint2D{
    x:number,
    y:number
  }
  const p1 :Ipoint2D = {
    x :123,
    y:1241
  }
  //接口继承

  interface Ipoint3D extends Ipoint2D {
    z:number
  } 
  const p2 : Ipoint3D ={
    x : 13,
    y:14,
    z:520
  }

先定义 Ipoint2D中的x,y类型,然后在接口继承的时候定义 3D中的类型,在使用的时候接口已经把2D中的类型直接继承过去就可以直接使用,而type不行,它不能继承

9.any类型

any 类型, 任何类型,没有限制 

有些时候可以临时写一下 

       1. 前端没有明确拿到后端的数据的时候,不知道使用什么类型来保存

        2.可以先用下any ,让代码通过运行

有些时候,就应该是any

        console.log()  它的参数就是any

默认为any 

         let   b

          function f(b){ }