详细介绍typescript的所有变量类型

目录

    • 1. 任意类型(Any)
    • 2. 数字类型(Number)
    • 3. 字符串类型(String)
    • 4. 布尔类型(Boolean)
    • 5. 数组类型(Array)
    • 6. 元组类型(Tuple)-需求明确的数组
    • 7. 枚举类型(Enum)--对象下标的映射
    • 8. 对象类型(Object)
    • 9. 空类型(Void)
    • 10. 未定义类型(Undefined)
    • 11. 空值类型(Null)
    • 12. 永远不存在(Never)

TypeScript是一种开源的编程语言,它是JavaScript的超集,可以编译为纯JavaScript。TypeScript可以帮助开发者在编写代码时更好地理解和调试代码,同时还能提高代码的可读性和可维护性。在TypeScript中,变量是非常重要的概念,因为它们可以存储和操作数据。在本文中,我们将详细介绍TypeScript中的各种变量类型,并提供一些代码案例分析。

1. 任意类型(Any)

任意类型是TypeScript中最灵活的类型,它可以存储任何类型的数据。如果您不确定变量的类型,可以使用任意类型。任意类型的变量可以赋值给任何其他类型的变量。

let myVariable: any = "Hello World";
myVariable = 42;
myVariable = true;

2. 数字类型(Number)

数字类型可以存储整数和浮点数。在TypeScript中,数字类型的变量可以使用十进制、十六进制、八进制和二进制字面量。

let myNumber: number = 42;
let myHexNumber: number = 0xff;
let myOctalNumber: number = 0o744;
let myBinaryNumber: number = 0b1010;

3. 字符串类型(String)

字符串类型可以存储文本数据。在TypeScript中,字符串类型的变量可以使用单引号或双引号。

let myString: string = "Hello World";
let myOtherString: string = 'Hello TypeScript';

4. 布尔类型(Boolean)

布尔类型可以存储true或false值。

let myBoolean: boolean = true;
let myOtherBoolean: boolean = false;

5. 数组类型(Array)

数组类型可以存储一组相同类型的数据。在TypeScript中,数组类型的变量可以使用数组字面量或Array语法。

let myArray: number[] = [1, 2, 3, 4, 5];
let myOtherArray: Array<string> = ["Hello", "TypeScript"];

6. 元组类型(Tuple)-需求明确的数组

元组类型可以存储一组不同类型的数据。在TypeScript中,元组类型的变量可以使用数组字面量和类型注释。

let myTuple: [string, number] = ["Hello", 42];

7. 枚举类型(Enum)–对象下标的映射

枚举类型可以为一组相关的常量赋予有意义的名称。在TypeScript中,枚举类型的变量可以使用枚举名称或枚举值。

enum Color {Red,Green,Blue
}let myColor: Color = Color.Green;

8. 对象类型(Object)

对象类型可以存储任何类型的数据。在TypeScript中,对象类型的变量可以使用对象字面量或类型注释。

let myObject: object = { name: "John", age: 42 };
let myOtherObject: { name: string, age: number } = { name: "Jane", age: 24 };

9. 空类型(Void)

空类型可以用于表示没有任何返回值的函数。在TypeScript中,空类型的变量可以使用void关键字。

function myFunction(): void {console.log("Hello TypeScript");
}

10. 未定义类型(Undefined)

未定义类型可以用于表示变量未被赋值。在TypeScript中,未定义类型的变量可以使用undefined关键字。

let myUndefined: undefined = undefined;

11. 空值类型(Null)

空值类型可以用于表示变量的值为null。在TypeScript中,空值类型的变量可以使用null关键字。

let myNull: null = null;

12. 永远不存在(Never)

never 永远不存在的值 常用函数的报错 死循环


function text():never{while(true){console.log(1)}
}

总结:
在TypeScript中,变量类型是非常重要的概念,因为它们可以帮助开发者更好地理解和调试代码。在本文中,我们介绍了TypeScript中的所有变量类型,并提供了一些代码案例分析。TypeScript的变量类型非常灵活,可以适应各种不同的编程需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/60781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

研磨设计模式day14模板方法模式

目录 场景 原有逻辑 有何问题 解决方案 解决思路 代码实现 重写示例 模板方法的优缺点 模板方法的本质 何时选用 场景 现在模拟一个场景&#xff0c;两个人要登录一个系统&#xff0c;一个是管理员一个是用户&#xff0c;这两个不同身份的登录是由后端对应的两个接…

Android笔记--Hilt

Hilt 是 Android 的依赖项注入库&#xff0c;可减少在项目中执行手动依赖项注入的样板代码。执行手动依赖项注入要求您手动构造每个类及其依赖项&#xff0c;并借助容器重复使用和管理依赖项。依赖注入的英文是Dependency Injection&#xff0c;简称DI,简单说一个类中使用的依赖…

Win11更新致蓝屏死机,应对技巧你必知!

Windows 11用户应该意识到&#xff0c;微软的最新更新导致一些电脑崩溃&#xff0c;并在可怕的死亡蓝屏上显示“UNSUPPORTED_PROCESSOR”。 这一点尤其值得注意&#xff0c;因为据报道&#xff0c;这种情况发生在自然情况下的Windows 11 PC上&#xff0c;因此对任何下载最新更…

数据结构day04(概念、顺序表)

今日任务 2.冒泡排序和选择排序 #define MAX 10typedef struct{int id; }data;typedef struct seq{data arr[MAX];int len; }seqList,*seqListP;/** function: 选择排序* param [ in] * param [out] * return */ int selectSort(seqListP p){if(is_empty(p))return 1;…

React Navigation 路由传参

页面之间传递参数 实现页面之间传递参数很简单&#xff0c;跟普通的 React 项目一样&#xff0c;具体实例入戏&#xff1a; // 传入参数 export default function Home(props: { navigation: any }) {return (<View><Text>Home</Text><Buttontitle"…

干翻Dubbo系列第十五篇:Rest协议基于SpringBoot的规范化开发

文章目录 文章说明 一&#xff1a;Rest协议简介 二&#xff1a;搭建开发环境 1&#xff1a;父项目里边引入的新的版本内容 2&#xff1a;Api中的操作 3&#xff1a;Provider模块 三&#xff1a;编码 1&#xff1a;API模块 2&#xff1a;Provider模块 3&#xff1a;Co…

学习总结(二) node.js服务器如何使用net模块向硬件发送命令与接收数据?

服务器server.js: const net require("net"); //此模块用于tcp/ip通讯 当收到get请求时: server.get("/cfjcApi/v1/SkyTempHudi", (req, res) > { let client new net.Socket(); client.connect(网络模块端口, 网络模块Ip, () > { //此模块…

leetcode做题笔记111. 二叉树的最小深度

给定一个二叉树&#xff0c;找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明&#xff1a;叶子节点是指没有子节点的节点。 思路一&#xff1a;递归 int minDepth(struct TreeNode* root){if(!root)return 0;int leftminDepth(root->le…

在springboot中配置mybatis(mybatis-plus)mapper.xml扫描路径的问题

我曾经遇到过类似问题&#xff1a; mybatis-plus的mapper.xml在src/main/java路径下如何配置pom.xml和application.yml_idea 把mapper文件放到java下如何配置_梓沂的博客-CSDN博客 当时只是找到解决问题的办法&#xff0c;但对mybatis配置来龙去脉并未深入了解&#xff0c;所…

Servlet的使用(JavaEE初阶系列17)

目录 前言&#xff1a; 1.Servlet API的使用 1.1HttpServlet 1.2HttpServletRequest 1.3HttpServletResponse 2.表白墙的更新 2.1表白墙存在的问题 2.2前后端交互接口 2.3环境准备 2.4代码的编写 2.5数据的持久化 2.5.1引入JDBC依赖 2.5.2创建数据库 2.5.3编写数…

clickhouse系列3:clickhouse分析英国房产价格数据

1.准备数据集 该数据集包含有关英格兰和威尔士自1995年起到2023年的房地产价格的数据,超过2800万条记录,未压缩形式的数据集大小超过4GB,在ClickHouse中需要约306MB。 2.clickhouse中建表 CREATE TABLE uk_price_paid (price UInt32,

Mysql 索引

索引 索引是一个排序的列表&#xff0c;在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址&#xff08;类似于C语言的链表通过指针指向数据记录的内存地址&#xff09; 使用索引后可以不用扫描全表来定位某行的数据&#xff0c;而是先通过索引表找到该行数据对应…

spring的后置处理器BeanPostProcessor

什么是BeanPostProcessor 是spring IOC容器给我们提供的一个扩展接口在调用初始化方法前后对bean进行额外加工&#xff0c;ApplicationContext会自动扫描实现了BeanPostProcessor的bean&#xff0c;并注册这些bean为后置处理器是bean的统一前置后置处理而不是基于某一个bean 执…

Linux系统:CentOS 7 CA证书服务器部署

目录 一、理论 1.CA认证中心 2.CA证书服务器部署 二、实验 1. CA证书服务器部署 三、总结 一、理论 1.CA认证中心 &#xff08;1&#xff09;概念 CA &#xff1a;CertificateAuthority的缩写&#xff0c;通常翻译成认证权威或者认证中心&#xff0c;主要用途是为用户…

defaultdict, Counter, json包中的load, dump是否都保持插入顺序

自python3.7以来&#xff0c;python的dict都会保留插入顺序&#xff0c;那么相关的defaultdict, Counter&#xff0c;以及使用json.load、json.dump也一定能保持顺序吗&#xff1f; 结论&#xff1a;以上这些和dict一样&#xff0c;都会保留插入顺序 defaultdict&#xff1a;…

Linux防火墙相关命令

防火墙基础命令 systemctl status firewalld #查看防火墙状态 systemctl start firewalld #开启防火墙 systemctl stop firewalld #临时关闭 systemctl disable firewalld.service #关闭自启 systemctl enable firewalld.servi…

39、springboot的前端静态资源的WebJar支持(bootstrap、jquery等)及自定义图标和首页

★ WebJar支持 Spring Boot支持加载WebJar包中的静态资源&#xff08;图片、JS、CSS&#xff09;&#xff0c; WebJar包中的静态资源都会映射到/webjars/**路径。——这种方式下&#xff0c;完全不需要将静态资源复制到应用的静态资源目录下。只要添加webjar即可。假如在应用的…

十四、组合模式

一、什么是组合模式 组合&#xff08;Composite Pattern&#xff09;模式的定义&#xff1a;有时又叫作整体-部分&#xff08;Part-Whole&#xff09;模式&#xff0c;它是一种将对象组合成树状的层次结构的模式&#xff0c;用来表示“整体-部分”的关系&#xff0c;使用户对单…

从零开始搭建并运行mmsegmentation

安装&#xff1a; Step 1:创建Conda 环境并激活之 conda create --name openmmlab python3.8 -y conda activate openmmlab Step 2&#xff1a;CUDA版本选择&#xff0c;及安装Pytorch 关于设备GPU的cuda版本&#xff0c;根据如下的选择原则&#xff1a; 对于Ampere架构的…

无感刷新:Vue前端实现Token的无缝刷新机制

在现代Web应用程序中&#xff0c;用户身份验证和授权通常使用令牌&#xff08;Token&#xff09;机制来实现。然而&#xff0c;由于Token的过期时间限制&#xff0c;用户在长时间使用应用程序时可能需要重新登录。为了提供更好的用户体验&#xff0c;我们可以通过实现Token的无…