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

相关文章

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

Pydantic中Optional 和Union类型的使用

《Pydantic中Optional和Union类型的使用》本文主要介绍了Pydantic中Optional和Union类型的使用,这两者在处理可选字段和多类型字段时尤为重要,文中通过示例代码介绍的... 目录简介Optional 类型Union 类型Optional 和 Union 的组合总结简介Pyd

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

浅谈mysql的sql_mode可能会限制你的查询

《浅谈mysql的sql_mode可能会限制你的查询》本文主要介绍了浅谈mysql的sql_mode可能会限制你的查询,这个问题主要说明的是,我们写的sql查询语句违背了聚合函数groupby的规则... 目录场景:问题描述原因分析:解决方案:第一种:修改后,只有当前生效,若是mysql服务重启,就会失效;

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓

Linux修改pip临时目录方法的详解

《Linux修改pip临时目录方法的详解》在Linux系统中,pip在安装Python包时会使用临时目录(TMPDIR),但默认的临时目录可能会受到存储空间不足或权限问题的影响,所以本文将详细介绍如何... 目录引言一、为什么要修改 pip 的临时目录?1. 解决存储空间不足的问题2. 解决权限问题3. 提

Python如何查看数据的类型

《Python如何查看数据的类型》:本文主要介绍Python如何查看数据的类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python查看数据的类型1. 使用 type()2. 使用 isinstance()3. 检查对象的 __class__ 属性4.