ts 学习笔记

ops/2024/10/15 19:12:51/

:void 代表没有返回值 一般用于函数
1顶级类型 any unknown(不可以赋值给其他类型,只能赋值给自身或者any,没有办法读任何属性,方法也不可以调用)
2 Object
3 Number String Boolean
4 number string boolean
5 1 ‘’a’ false
6 never
interface
// interface 重名会重合
// interface
// extends 继承

// interface Ademo extends B {
// name:string, //这个属性必须有
// age?:number, // 可选
// readonly cb?😦)=>boolean, //常用于函数,id 等不可修改数据
// [propName:string]:any //索引签名,任意key ,后台返回数据不确定时使用,最好定义为any类型
// }
// interface B {
// six:string
// }
// let a:Ademo = {
// name:‘aa’,
// age:12
// }

// 定义函数类型:例子:传入string ,返回number 数组
interface Fn{
(name:string):number[]
}
const fn:Fn =function(name:string){
return [1]
}
数组

let arr:number[]=[1,2]
let arr1:string[]=[‘1’,‘2’]
// 使用interface 方法定义对象数组
interface x {
name:string
}
let arr2:x[]=[{name:‘1’},{name:‘2’}]

// 定义多维数组
let arr4:number[][]=[[1],[2]]
let arr5:Array<Array>=[[1],[2]] //使用泛型方式定义二维数组
let arr6:any[]=[1,‘2’,false]
// … args 实际上就是一个数组,所以可以定义为[]
function a(…args:any[]){
// IArguments 定义类数组,原理是 interfaces 里面有很多方法

// let a:IArguments=arguments.callee
}

函数
// 函数定义类型 和返回值 | 箭头函数定义类型和返回值
// 函数默认的参数|函数可选的参数
// 参数是一个对象如何定义
// 函数this类型
// 函数重载

// 加?表示可传可不传
// function add(a?:number,b?:number):number {
// return a + b
// }
// function add1(a:number,b:number):number {
// return a + b
// }
// const add1 = (a:number,b:number):number=>a+b

// 参数是对象的清空,可以用insterface 定义
// interface User {
// name:string
// }
// function sy (user:User):User{
// return user
// }
// console.log(sy({name:‘aa’}))

// ts 可以定义this的类型,在js 中无法使用,必须是第一个参数定义this的类型
// interface Obj {
// user:number[],
// add:(this:Obj,num:number)=>void
// }
// let obj :Obj={
// user:[1,2,3],
// add(this:Obj,num:number){
// this.user.push(num)
// }
// }

// 函数重载
let list:number[]=[1,2,3]
function findNum(add:number[]):number[] //如果传入数组,添加并返回数组
function findNum(id:number):number[]//传入 id 查找并返回数组
function findNum():number[] //如果没有传入,返回原数组
function findNum(ids?:number|number[]):number[]{
if(typeof ids =‘number’){
return list.filter(v=>v
=ids)
}else if(Array.isArray(ids)){
list.push(…ids)
return list
}else {
return list
}
}


http://www.ppmy.cn/ops/42601.html

相关文章

ping 探测网段哪些地址被用

#!/bin/bash# 遍历192.168.3.1到192.168.3.254 for i in {1..254} doip"192.168.3.$i"# 对每个IP地址进行三次ping操作if ping -c 3 -W 1 $ip > /dev/null 2>&1thenecho "$ip: yes"fi done$ sh test.sh 192.168.3.1: yes 192.168.3.95: yes 192.…

web前端的路径和Servlet注解开发

目录 在web前端的两种路径 绝对路径的两种写法 相对路径 相对路径进阶 使用注解开发Servlet 使用注解开发Servlet的注意事项 使用idea创建servlet模板 在web前端的两种路径 绝对路径的两种写法 1.带网络三要素 http://ip地址:端口号/资源路径 2.不带网络三要素 /资源路…

python-数据可视化

python-数据可视化 ** 数据可视化指的是通过可视化表示来探索数据&#xff0c;它与数据挖掘**紧密相关&#xff0c;而数据挖掘指的是使用代码来探索数据集的规律和关联。数据集可以是用一行代码就能表示的小型数字列表&#xff0c;也可以是数以吉字节的数据 最流行的工具之一…

算法:树状数组

文章目录 面试题 10.10. 数字流的秩327. 区间和的个数315. 计算右侧小于当前元素的个数 树状数组可以理解一种数的存储格式。 面试题 10.10. 数字流的秩 假设你正在读取一串整数。每隔一段时间&#xff0c;你希望能找出数字 x 的秩(小于或等于 x 的值的个数)。 请实现数据结构…

谷歌蜘蛛池是什么?

或称为谷歌爬虫池&#xff0c;是一项专门针对谷歌搜索引擎优化&#xff08;SEO&#xff09;的先进技术&#xff0c;这种技术的主要目的是通过建立庞大的网站群体和复杂的链接结构来吸引和维持谷歌的爬虫程序的注意力&#xff0c;其核心是通过这种结构优化&#xff0c;增强特定网…

什么是html

HTML&#xff08;HyperText Markup Language&#xff0c;超文本标记语言&#xff09;是一种用于创建网页的标准标记语言。它描述了一个网站的结构骨架&#xff0c;使得浏览器能够展示具有特定格式的文本、链接、图片和其他内容。HTML 文档由一系列的元素构成&#xff0c;这些元…

在 Vue 中实现表单校验失败后页面滚动到错误处

在 Web 应用程序中&#xff0c;表单验证是保证用户输入的正确性和完整性的关键部分。当用户提交表单时&#xff0c;我们经常需要验证表单数据&#xff0c;并在发现错误时向用户提示。在 Vue.js 中&#xff0c;实现表单验证通常是使用一些流行的库&#xff0c;比如 VeeValidate …

LeetCode hot100-47-N

105. 从前序与中序遍历序列构造二叉树给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。这题放选择题里还能选出来&#xff0c;前序中序一起确定了一颗什…