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

interface

重名会重合到一起

如果两个interface名称相同,会把两个合到一起

重复定义同一个需要类型相同

不能多或者减少属性

设置任意key

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

可选

js 复制代码
interface Modal {
    name: string
    age: number
    b?:number
}
let modal: Modal = {
    name: '123',
    age: 12,
}

只读

常用于id和函数,不想被修改

继承

相当于再次合并两个接口

函数定义

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

js 复制代码
interface Fn {
    (name: string): number[]
}

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

数组类型

采用普通方式定义和泛型方式定义基本数组类型

定义对象数组

js 复制代码
interface X {
    name:string,
    age?:number
}

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

定义多维数组

js 复制代码
let arr: number[][] = [[1], [2]]
let arr1: Array<Array<number>> = [[1], [2]]

元组定义数组

js 复制代码
let arr2:[number,string] = [1,'2']

定义arguments类数组

js 复制代码
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;
}
相关推荐
五味香32 分钟前
Java学习,查找List最大最小值
android·java·开发语言·python·学习·golang·kotlin
小爬菜1 小时前
Django学习笔记(启动项目)-03
前端·笔记·python·学习·django
小爬菜1 小时前
Django学习笔记(bootstrap的运用)-04
笔记·学习·django
叫我龙翔1 小时前
【博客之星】2024年度创作成长总结 - 面朝大海 ,春暖花开!
学习
dal118网工任子仪2 小时前
69,【1】BUUCTF WEB ssrf [De1CTF 2019]SSRF Me
笔记·学习
猿类崛起@3 小时前
百度千帆大模型实战:AI大模型开发的调用指南
人工智能·学习·百度·大模型·产品经理·大模型学习·大模型教程
viperrrrrrrrrr73 小时前
大数据学习(40)- Flink执行流
大数据·学习·flink
l1x1n03 小时前
No.35 笔记 | Python学习之旅:基础语法与实践作业总结
笔记·python·学习
飞的肖7 小时前
日志(elk stack)基础语法学习,零基础学习
学习·elk
dal118网工任子仪9 小时前
66,【6】buuctf web [HarekazeCTF2019]Avatar Uploader 1
笔记·学习