当前位置: 首页 > news >正文

几分钟学会TypeScript

目录

  • 一、类型推断和类型注解
  • 二.类型注解,声明时指定类型
  • 三、类型断言
  • 四、基础类型和联合类型
    • 字符串
    • 数字和浮点类型
    • 布尔
    • 空和undefined
    • 多类型
      • 值限定
  • 五、数组 元组 枚举
    • 数组
    • 元组,?代表可选参数
    • 枚举
      • 枚举使用
  • 六、函数
    • 函数作为参数
  • 七、类、接口与抽象类
    • 访问修饰符
    • 类的继承
    • 接口
    • 抽象类
    • 命名空间
  • 八、类型别名
  • 九、泛型
  • 十、运算符
  • 十一、条件控制
  • 十二、循环控制
  • 十三、正则表达式

一、类型推断和类型注解

//1. 类型约束
let str = '赵云'
//str  = 10 会报错,因为初始值约束为字符串

二.类型注解,声明时指定类型

let str2:string = '张飞'

三、类型断言

let nums = [1,2,3]
var result = nums.find(i => i>2)
//var ss  = result * 2 //这样会报错//可以添加类型断言as xx 关键字 断言是某种类型
var result2 = nums.find(i => i>2) as number
var ss  = result2 * 2

四、基础类型和联合类型

字符串

//省略类型
let author = '李白'
//指定类型
let author2:string = '李白'

数字和浮点类型

let n2:number = 10
let n3:number = 1.1

布尔

let b1:boolean = true

空和undefined

let nu:null = null
let und:undefined = undefined

多类型

let v4 :string|null = null

值限定

//let v5 : 1|2|3 = 5//会报错
let v6:1|2|3 = 2

五、数组 元组 枚举

数组

let nums3:number[] = [1,2,3]
//省略类型
let nums2 = [1,2,3]
//数组
let nums3:number[] = [1,2,3]
//在数组后面追加元素
nums3.push(4)
//在数组前面添加元素
nums3.unshift(1)
//删除最后面的元素
nums3.pop()
//从第几位开始删除几个
nums3.splice(0,1)
//删除最前面的
nums3.shift()
let nums4 = [1,2,3]
//合并两个数组
nums3.concat(nums4)
//根据下标查找元素位置
nums3.indexOf(2)
//排序
nums3.sort()
nums3.reverse()

元组,?代表可选参数

let ccc :[number,string,number,number?]= [1,'2',2]
//省略类型
let ccc2= [1,'2',2,6]

枚举

enum My{A,B,c
}

枚举使用

My.A 
//或者
My[0]

六、函数

//函数:a默认值是2,b是可选参数,c是剩余参数,返回值为string类型
function login(a:number = 2,b?:string,...c:string[]):string{
return "jack"
}//调用函数
login(1,"","1","2","3")

函数作为参数

function toExit(exit:Function){//执行exit("nickk")}//第一种调用
function handleExit(nickk:string){console.log('退出1')
}
toExit(handleExit)//第二种调用 匿名调用
toExit(function(nickk:string){console.log('退出2')
})//第三种调用
toExit((nickk:string)=>{console.log('退出3')
})

七、类、接口与抽象类

//类
class Person{
//静态属性
static DES:string = '张飞'nick:string = '默认'count:number = 2//构造方法constructor(nick:string,count:number){this.nick = nickthis.count = count}//方法say(nick:string){}//静态方法static play(nick:string){}
}
//使用类
let p = new Person('tom',5)
//p.nick = 'jack'
p.say('飞飞')
Person.play('飞飞')

访问修饰符

public protected private

类的继承

//继承extends
class Student extends Person {}
//使用
let stu = new Student('jack',6)
stu.count = 10

接口

//接口
interface People{name:string,age:number,}const Man:People = {name:"jack",age:18
}

抽象类

//抽象类
abstract class Persons{name:string = 'tom'play(){}//抽象方法abstract jump2():any}
class Teacher extends Persons{//继承抽象类,必须重写抽象方法jump2(){}}

命名空间

namespace aa{//在命名空间内添加export 可被外部调用export class Person{}
}
namespace bb{class Person{}
}
let ap = new aa.Person()
//let bp = new bb.Person() 报错找不到

八、类型别名

//非自定义模式
let nickName :string | number = "jack"
let nickName2 :string | number = 20
//自定义类型别名
type MyNickName = string | Numberlet nickName3:MyNickName = "TOM"
let nickName4:MyNickName = 33

九、泛型

function count(a:number, b:any):number[]{
return [a,b]
}//通过泛型改造后
function add<T>(a:T, b:T):T[]{
return [a,b]
}add<number>(1,2)
//add(1,2)  可省略类型
add<string>("jack","tom")
//add("jack","tom") 可省略类型

十、运算符

//+ - * / % ++ -- +=
//> < >= <= 
//== 判断值相等 
//=== 判断值和类型都相等
//!= 值不相等 
//!== 值和类型都不相等
//&& 并且
//|| 或者

十一、条件控制

// if else if else 
// switch case 
let age = 10
switch(age){case 1:breakcase 2:break;default:
}

十二、循环控制

let a = 2
while(a>1){}
//至少执行一次
do{}while(a>2)let names:string[] = ['张飞','赵云']
for(let i = 0;i<8;i++){var res = names[i]if(i>5){break}else {continue}
}
for(let n of names){//直接得到值var res = n
}
for(let index in names){//索引var resIndex = index
}

十三、正则表达式

http://www.lryc.cn/news/336930.html

相关文章:

  • 最新版手机软件App下载排行网站源码/App应用商店源码
  • R语言计算:t分布及t检验
  • uni-app的地图定位与距离测算功能的实现
  • 如何从应用商店Microsoft Store免费下载安装HEVC视频扩展插件
  • 【vue】v-if 条件渲染
  • Day37:LeedCode 738.单调递增的数字 968.监控二叉树 蓝桥杯 翻转
  • 详解Qt元对象系统
  • 无法用raven-js,如何直接使用TraceKit标准化错误字符串(一次有趣的探索)
  • Docker学习笔记(二):在Linux中部署Docker(Centos7下安装docker、环境配置,以及镜像简单使用)
  • uniapp 检查更新
  • (Java)数据结构——正则表达式
  • 第6章 6.3.1 正则表达式的语法(MATLAB入门课程)
  • RX8130CE为用户提供带复位延迟和主备电管理的解决方案
  • JS文件导出变量
  • 已知私钥和密文,如何用python进行RSA解密
  • vue2-vue3面试
  • jmeter生成随机数的详细步骤及使用方式
  • 速盾:为什么会出现高防cdn?它适合哪些行业?
  • GB∕T 25058-2019 信息安全技术 网络安全等级保护实施指南
  • 使用Nodejs + express连接数据库mongoose
  • 朗致集团面试-Java架构师
  • Ubuntu 23.10 搜狗拼音输入法闪屏解决
  • 备战蓝桥杯---刷杂题2
  • .[[backup@waifu.club]].svh勒索病毒数据怎么处理|数据解密恢复
  • SpringFramework实战指南(八)
  • Ceph学习 -4.Ceph组件介绍
  • Python100个库分享第13个—awesome-slugify(处理Unicode)
  • 01 SQL基础 -- 初识数据库与安装
  • PyTorch搭建Autoformer实现长序列时间序列预测
  • FFmpeg: 简易ijkplayer播放器实现--06封装打开和关闭stream