学习ts(二)数据类型(接口和对象类型、数组类型)

interface

接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要由具体的类去实现,然后第三方就可以通过这组抽象方法调用,让具体的类执行具体的方法
简单来讲,一个接口所描述的是一个对象相关的属性和方法,但并不提供具体创建此对象实例的方法

重名会重合到一起

如果两个interface名称相同,会把两个合到一起
重复定义同一个需要类型相同
不能多或者减少属性
在这里插入图片描述

设置任意key

当定义接口返回数据时,我们不确定接口会返回多少,知道所需要的固定属性,其余属性可以设置为[propName: string]
需要注意的是,一旦定义了任意属性,那么确定属性和可选属性的类型都必须是它的类型的子集
在这里插入图片描述
在这里插入图片描述

可选

interface Modal {
    name: string
    age: number
    b?:number
}
let modal: Modal = {
    name: '123',
    age: 12,
}

只读

常用于id和函数,不想被修改
在这里插入图片描述

继承

相当于再次合并两个接口
在这里插入图片描述

函数定义

相当于定义了一个参数为name,返回值为数字数组类型的函数

interface Fn {
    (name: string): number[]
}

let fn1:Fn = (name:string)=>{
    return [1,2,3]
}

数组类型

采用普通方式定义和泛型方式定义基本数组类型
在这里插入图片描述
定义对象数组

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

let arr:X[]=[{name:'123'}]

定义多维数组

let arr: number[][] = [[1], [2]]
let arr1: Array<Array<number>> = [[1], [2]]

元组定义数组

let arr2:[number,string] = [1,'2']

定义arguments类数组

function Arr(...args:any): void {
    console.log(arguments)
    //错误的arguments 是类数组不能这样定义
    let arr:number[] = arguments
}
Arr(111, 222, 333)
 
 
 
function Arr(...args:any): void {
    console.log(arguments) 
    //ts内置对象IArguments 定义
    let arr:IArguments = arguments
}
Arr(111, 222, 333)
 
//其中 IArguments 是 TypeScript 中定义好了的类型,它实际上就是:
interface IArguments {
[index: number]: any;
length: number;
callee: Function;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值