TS中的类型、接口的使用


类型

js的七种类型 + 枚举() + any + void + never
enum类型的使用

enum Six {
  // 不赋值的话默认从0开始复制,也可由单独复制
  man, // man= 0
  wonen // women = 1
}
const p1:Six = Six.man
const p2:Six = Six.wonen
console.log(p1) // 0
console.log(p2) // 1

·any包含了(js的七种类型 + enum + void )·
默认情况下null和undefined是所有类型的子类型。 就是说你可以把 null和undefined赋值给number类型的变量

接口 Interface

接口就是用代码描述一个对象必须有什么属性(包括方法)

只读属性

interface Human{
    readonly name: string,
    readonly age: number
}

可选属性

interface Human{
    name?: string,
    age?: number
}

interface 之外的属性

使用类型断言

interface Human{
  name: string,
  age: string
}
const fn= (human:Human) =>{
  // xxx
  return human
}

fn({name:'xx',age:'xx', six:'xxx'} as Human)

使用索引签名

interface Human{
  name: string,
  age: string,
  [propName:string]:any
}
const fn= (human:Human) =>{
  // xxx
  return human
}

fn({name:'xx',age:'xx', six:'xxx'})

interface描述对象中的方法

interface Human{
  name: string,
  age: string,
  say(str:string):void // 括号中是参数   冒号后面是 返回值的类型 函数中不加return 默认返回void
}

interface直接描述对象

interface Fn {
  (Human):Human
}
const fn:Fn= (human:Human) =>{
  // xxx
  return human
}

接口继承

interface Human{
  name: string,
  age: string,
}
interface Animal extends Human {
  type:string
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM