首页 > 其他分享 >Typescript 详细总结1

Typescript 详细总结1

时间:2024-04-11 12:31:56浏览次数:22  
标签:总结 Typescript string number num let 详细 类型 any

基本数据类型

类型注释 :number

let  num:number = 5 // 数字类型

let  str:string = 'str' // 字符串类型

let  boolen:boolean  = true // 布尔

 类型断言,确定类型后,不能赋其他类型值

any 类型

let   anything:any = 'ssssss'

let   anything:any = 223

any类型 变量中可以储存任何类型的值,关闭了ts的类型检验

声明变量如果不指定类型,则自动默认为any let num = 10  // 隐式any

Unknow 类型

let unkow:unknown = 'srttt'

unkow = true

unkow = 12

unknow   实际上就是一个安全的any类型,不能直接赋值给其他变量

如果需要变量赋值,可以使用if判断是否是此类型,进而赋值

或者类型断言 unkow as string

Unknow 和 any 不同点

任何值都可以赋值any,unkown,但unkown不能赋值给除unkown和any之外的值

// #region  unknown 与 any区别
// 1.可以把任何类型的值赋给any
// 任何值都可以赋值给unkonwn,any 但是unkonwn不能赋值给除 unkonwn,any 以外的值
let any:any 
let unknown:unknown = 'sss'
let num:number=18
num = any
num = unknown  
console.log(num);

数组array

// #region 数组类型
let arr: string[]  // 字符串数组
let arr2: number[] // 数字数组
let arr3: boolean[]  // 布尔值数组

let arrs: string[][] // 二维数组
arrs = [['ss', 'ddd']]
console.log(arrs[0].length);

元组 tuples

固定长度的数组 

// #region 元典类型
let empole:[string,number,boolean] = ['ss',22,false]
empole[0] = 'dd'
//#endregion

枚举 enum

存储一组有限值,可以限定值的范围

// #region 枚举
// 默认从零开始 设置默认值后从默认值开始递增
// 若设置除 number 以外类型的值,所有值都需要默认值
// 声明时编译的是打印
const enum num {
    one = 'he',
    two = 'll',
    three = 'o'
}

// 当值为枚举类型时,赋值为枚举类型
let a: num = num.one
console.log(a);

console.log(num.one);
// #endregion

函数 function

function fn(参数1:类型,参数二:类型) :返回值类型 =>{}

通过类型注释可以标注函数接收的参数类型和返回值的类型

如果函数没有返回值,使用void标注 fn():void

通过?的方式可以设置可选参数 fn(a?:number) // a=number/undefind  可选参数原本就是原本类型

若定义函数形参为结构语法  fn({data,now}:{data:string; now:number} )  // 与形参一一对应

永远不会返回结果 fn():never

//#region 函数
function sum(num1: number, num2: number): number {
    return num1 + num2
}

// 没用返回值时,用:volid
function setnum(data: boolean): void {
    console.log(99999);
}

// 函数(参数类型)=>返回值类型
let log: (n: number) => number;
log = (x) => {
    return 10
}

// 函数返回值必须返回
function a1(num1: number): number {
    if (false) {
        return num1
    }
    else {
        return num1
    }
}

// 参数必须传参
// ?可选参数 
function a2(num1: number = 1, num2?: number): number { // 默认参数
    if (num2) {
        return num1 + num2
    }
    return num1
}

console.log(a2());

// 结构语法 结构赋值
const data = ({date, weather}:{date:Date,weather:string})=>{
 console.log(date,weather);
}

const tody={
    date:new Date(),
    weather:'sunny'
}

data(tody)

对象 object

字面量对象 let obj: {x:number, y:number} = {x:10,y:100}

let student: { age?: number } = {}; //age?: number | undefined

const userInfo = {
    names: 'zhangsan',
    age: 18,
    love: {
        play: 'basketball',
        sing: 'r&b'
    }
}

// 解构对象里的数据 一层层解构
const { names, age }: { names: string, age: number } = userInfo
const { love }: { love: { play: string, sing: string } } = userInfo
const {love:{play,sing}}:{love: { play: string, sing: string }} = userInfo

console.log(love);
console.log(play);


//  type ts新增 允许自定义数据类型
type standard = { x: number, y: number }

let position: standard = { x: 100, y: 20 }
let position2: standard = { x: 100, y: 20 }

position.x = 555
console.log(position2);

// readonly 属性只读 不能修改
let a3: { readonly num: number } = { num: 10 }

// #endregion

可空类型

在ts中 ,undefined和null 这两个值也可以作为类型使用

 let und:undefind   let null:null

// ts中 undefined和null可以当数据类型
let a9: undefined = undefined
let a8: null = null

类型推断

有初始值是,类型推断就为初始值的类型 let num = 11 // number

没有初始值是,为any类型 let num; // any

// 系统类型推断
// 有初始值时,数据类型就为初始值的数据类型,无初始值时为any类型
let num1 = 10
let str = 'ss'
let x;  // any

// string
let strArr = ['a','b','c']
// num
let numArr = [1,2,3]
// boolen
let boolenArr = [true,false,undefined]
// never
let arr5 = [] // 数组中没用值为 never 即不能有值 

arr5[0] = 10  //报错 不能有值

// 对多数组类型时要加括号
let ary:(string | number)[] = [1,'f',50]

// ts编辑器会自己推断函数的返回值

never

void 表示没有任何类型(可以被赋值为 null 和 undefined)

never 表示一个不包含值的类型,即表示永远不存在的值。

区别:拥有 void 返回值类型的函数能正常运行。拥有 never 返回值类型的函数无法正常返回,无法终止,或会抛出异常。

标签:总结,Typescript,string,number,num,let,详细,类型,any
From: https://blog.csdn.net/gu644335363/article/details/137633230

相关文章

  • 详细了解肇庆名字的由来
    提到品深宣和青茶,就不得不了解宋徽宗,同样,也就不得不说千年前的端州,也就是现在的肇庆。要想了解肇庆,就不得不先了解肇庆名字的由来。宋元丰五年(公元1082年)十月十日,宋神宗赵顼喜得龙子,取名赵佶,赵佶从小就喜欢舞文弄墨,习字作画,年纪虽小,却才艺出众。绍圣三年(公元1096年)三月,赵佶被......
  • 文件包含漏洞详解(超级详细)
    目录什么是文件包含?文件包含漏洞产生的原因文件包含函数include()include_once()     require()require_once()     本地文件包含日志文件包含什么是日志文件如果没有access.log文件日志文件包含实验远程文件包含漏洞PHP伪协议php://filter伪协议包含......
  • localStorage使用总结
    一、什么是localStorage、sessionStorage在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同......
  • 软工第二次任务-工作总结
    引言:在软件开发的广阔天地中,单元测试是确保代码质量和功能正确性的关键步骤。它不仅有助于及时发现和修复缺陷,还能提高开发效率,减少后期维护成本。本次任务旨在对软件工程中的单元测试进行全面的总结,以期为未来的开发工作提供宝贵的经验和参考。一、单元测试的重要性单元测试,顾......
  • Linux开发、运维常用命令个人心得总结
    1、lsls是“list”的缩写,。它是Linux系统中用于列出目录内容的标准命令。默认情况下,它会以简单的方式显示文件和目录的列表。-l:长格式显示。-a:显示所有文件,包括隐藏文件。2、cd用于改变当前工作目录的命令,cd命令后面通常跟着要切换到的目录的路径。cd..:返回上一级......
  • 多种数据库存储过程数据插入方法总结
    多种数据库存储过程数据插入方法总结ORACLE-DM-OSCARCREATETABLEzhaobsh1m(IDvarchar(1024),NAME1varchar(1024),NAME2varchar2(1024),NAME3varchar2(1024));selectsegment_name--表名,bytes/1024/1024/1024as空间大小GBfromuser_segmentswheresegment_type......
  • 工作总结
    工作总结:C语言语句覆盖自动测试一、引言本次工作总结将回顾我们近期在C语言语句覆盖自动测试方面所取得的进展和成果。通过实施自动化测试策略,我们成功地对C语言程序进行了全面而系统的语句覆盖测试,有效提高了代码的质量和可靠性。二、测试准备与规划深入分析C语言程序在开始......
  • 工作总结
    C语言代码语句覆盖测试工作总结一、引言本次测试工作的主要目标是确保C语言代码中的每一个语句都至少被执行一次,即实现语句覆盖。通过语句覆盖测试,我们可以确保代码的基本逻辑路径已经被测试覆盖,从而提高代码的质量和可靠性。二、测试方法代码分析:首先,我们对C语言代码进行了详......
  • 工作总结
    通过这次工作我了解到,在软件测试中,测试用例设计是保证软件质量的关键环节。而覆盖测试是一种重要的测试策略,它旨在确保软件中的每个部分都被测试到。基于判定覆盖的标准,对测试用例设计进行实践和总结,可以提高测试的质量和效率,通过基于判定覆盖的测试用例设计实践,我们可以确保程序......
  • 鸿蒙开发TypeScript语言:【简介与Hello World!】
    TypeScript教程TypeScript是JavaScript的一个超集,支持ECMAScript6标准([ES6教程])。TypeScript由微软开发的自由和开源的编程语言。TypeScript设计目标是开发大型应用,它可以编译成纯JavaScript,编译出来的JavaScript可以运行在任何浏览器上。语言特性TypeScript......