学习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;
}
相关推荐
GEO从入门到精通3 小时前
课程怎么选?2026年GEO学习资源全梳理
学习
优化Henry4 小时前
LTE 载波频率与频点配置详解
运维·网络·学习·5g·信息与通信
xiaomu001234 小时前
高湿环境床垫湿度管理技术框架:湿度阈值、排湿结构与材料选型
经验分享·学习·学习方法
zhangrelay5 小时前
ROS项目设计案例智能大模型正经乱答案例
linux·笔记·学习·ubuntu·机器人
probex_5 小时前
学习笔记:知识图谱是什么,在测试里能干什么
笔记·学习·知识图谱
FYKJ_20107 小时前
SSM校园失物招领系统41452-计算机课程设计、毕业设计
java·vue.js·spring boot·python·mysql·typescript·spark
每天题库8 小时前
危险货物道路运输从业资格证题库刷题重点与错题梳理
学习·安全·考试·题库·考证
m4Rk_8 小时前
【论文阅读】Agent 记忆机制(86):Skill-Pro——用 Non-Parametric PPO 将交互经验演化为可复用技能
论文阅读·人工智能·学习·开源·github
AOI小白新手上路8 小时前
从 Keil 调试视角看 51 指针,到 Cortex-M 内存映射访问寄存器 · 学习笔记
笔记·学习
Joe_Wang58 小时前
【从0到1学习JVM · 15】对象在堆里来回倒腾,究竟怎样才会进老年代?
java·jvm·学习·垃圾回收