Typescript学习——类型声明(初稿,后续可能会修改)

2024-04-15 08:38

本文主要是介绍Typescript学习——类型声明(初稿,后续可能会修改),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Typescript在声明变量时,可以对这个变量的类型进行声明。如果后续赋值不符合要求,会报错(但不会影响编译成js)

let a:string	//a只能被字符串类型赋值
let b:string = 'hello'	//a只能被字符串类型赋值,同时给a赋值为'hello'

最基础的类型声明,Typescript除了js基础的数据类型外,额外定义了一些其他类型
TypeScript 包含的数据类型有:

类型描述
number任意数字
string任意字符串
boolean布尔值true或false
字面量限制变量的值就是该字面量的值
any任意类型
unknown类型安全的any
void没有值(或undefined)
never不能是任何值
object任意的js对象
array任意js数组
tuple元素,固定长度数组
enum枚举

当变量赋给给另一个变量时

let c:any = 1	//a可以被任意类型赋值
let b:string
b = c	//不会提示错误 不安全

let a:unknown = 1	//a为位置类型
let b:string
b = c	//会提示错误

如果你确定某一变量的数据类型,可以使用类型断言:

let a:number  = 1
let b:number
b = a as number	|	b = <number>a	//这两种写法都可以指定类型

声明对象数据类型:

let obj:Object	|	let obj:{}
//如果需要对对象里的内容和数据类型进行声明
let obj1:{name:string,age:number}	//这个对象必须为有string类型的key name和number类型的key age
let obj2:{name:string,age?:number}	//age后加?表示age可选
let obj3:{name:string,[propName:string]:any}	//propName不是固定值,可以任意,这个声明表示除了string类型的name是必须,后面的属性名必须为string类型,属性值是任意类型。数量不限

如果要满足2个类型:

let x:{name:string} & {age:number}	//对象同时要有2种也可以写成这样
x = {name:"张三",age:18}

声明函数数据类型:

let fn:Function
let fn1:(a:number,b:number)=>number	//函数的必须要传入2个参数,第一个和第二个参数数据类型都要为number类型,函数的返回值必须为number类型let fn2 = (a:number,b:number):number => { return a + b}		//第三个:numer是限制返回值类型(必须有返回值)

声明数组数据类型:

let arr:string[]	//声明一个字符串数组,数组的每一项只能为string类型
let arr1:Array<string>	//同上,第二种方法

元组声明:

let tuple:[string,number]	//该数组长度必须为2,第一项为string类型,第二项为number类型

枚举:

//如果声明的数据是有确定数量中数据的某一个,可以使用比如性别
let person:{name:string,gender:0 | 1}
//为了方便存储性别数据 有时会将性别用0和1来表示person = {name:"张三",gender:1}

可以使用枚举:

enum Gender {Male = 0,Female = 1}
let person:{name:string,gender:Gender}person = {name:"张三",gender:Gender.Male}

类型别名:

type myType = 1 | 2 | 3 | 4let a:myType
let b:myType	//使用type来起类型别名,可以使类型声明复用

这篇关于Typescript学习——类型声明(初稿,后续可能会修改)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/905358

相关文章

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Linux下修改hostname的三种实现方式

《Linux下修改hostname的三种实现方式》:本文主要介绍Linux下修改hostname的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下修改ho编程stname三种方式方法1:修改配置文件方法2:hFvEWEostnamectl命

Python如何在Word中生成多种不同类型的图表

《Python如何在Word中生成多种不同类型的图表》Word文档中插入图表不仅能直观呈现数据,还能提升文档的可读性和专业性,本文将介绍如何使用Python在Word文档中创建和自定义各种图表,需要的... 目录在Word中创建柱形图在Word中创建条形图在Word中创建折线图在Word中创建饼图在Word

SpringBoot接收JSON类型的参数方式

《SpringBoot接收JSON类型的参数方式》:本文主要介绍SpringBoot接收JSON类型的参数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、jsON二、代码准备三、Apifox操作总结一、JSON在学习前端技术时,我们有讲到过JSON,而在

Git如何修改已提交人的用户名和邮箱

《Git如何修改已提交人的用户名和邮箱》文章介绍了如何修改Git已提交人的用户名和邮箱,包括注意事项和具体步骤,确保操作正确无误... 目录git修改已提交人的用户名和邮箱前言第一步第二步总结git修改已提交人的用户名和邮箱前言需注意以下两点内容:需要在顶层目录下(php就是 .git 文件夹所在的目

Rust中的BoxT之堆上的数据与递归类型详解

《Rust中的BoxT之堆上的数据与递归类型详解》本文介绍了Rust中的BoxT类型,包括其在堆与栈之间的内存分配,性能优势,以及如何利用BoxT来实现递归类型和处理大小未知类型,通过BoxT,Rus... 目录1. Box<T> 的基础知识1.1 堆与栈的分工1.2 性能优势2.1 递归类型的问题2.2

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依