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

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Oracle修改端口号之后无法启动的解决方案

《Oracle修改端口号之后无法启动的解决方案》Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生,这一问题通常源于​​配置错误或环境冲突​​,而非端口修改本身,以下是系... 目录一、问题根源分析​​​二、保姆级解决方案​​​​步骤1:修正监听器配置文件 (listener.

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Python程序的文件头部声明小结

《Python程序的文件头部声明小结》在Python文件的顶部声明编码通常是必须的,尤其是在处理非ASCII字符时,下面就来介绍一下两种头部文件声明,具有一定的参考价值,感兴趣的可以了解一下... 目录一、# coding=utf-8二、#!/usr/bin/env python三、运行Python程序四、

IDEA下"File is read-only"可能原因分析及"找不到或无法加载主类"的问题

《IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题》:本文主要介绍IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题,具有很好的参... 目录1.File is read-only”可能原因2.“找不到或无法加载主类”问题的解决总结1.File

Nginx 413修改上传文件大小限制的方法详解

《Nginx413修改上传文件大小限制的方法详解》在使用Nginx作为Web服务器时,有时会遇到客户端尝试上传大文件时返回​​413RequestEntityTooLarge​​... 目录1. 理解 ​​413 Request Entity Too Large​​ 错误2. 修改 Nginx 配置2.1

Python对PDF书签进行添加,修改提取和删除操作

《Python对PDF书签进行添加,修改提取和删除操作》PDF书签是PDF文件中的导航工具,通常包含一个标题和一个跳转位置,本教程将详细介绍如何使用Python对PDF文件中的书签进行操作... 目录简介使用工具python 向 PDF 添加书签添加书签添加嵌套书签Python 修改 PDF 书签Pytho

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示