♥走进TypeScript的数据类型♥

♥走进TypeScript的数据类型♥前言 无论在学习什么语言的时候 我们都需要明白其该怎么样去定义一个变量或者 Function 那么今天我们来看看 TypeScript 的数据类型 文章目录 一 Ts 与 Js 的区别二 Ts 的数据 在这里插入图片描述 https img blog csdnimg cn afa764db282b png 三 数据类型应用 1 any 类型 2 number 类型 3 string 类型 4 Array 类型 1 2 数组泛型 一 Ts 与 Js 的区别众所周知 Jav

前言:无论在学习什么语言的时候,我们都需要明白其该怎么样去定义一个变量或者Function,那么今天我们来看看TypeScript的数据类型。
在这里插入图片描述

一.Ts与Js的区别

众所周知:JavaScript 是一种脚本语言,官方名称为 ECMAScript(因定义语言的标准为 ECMA-262)。

TypeScript是由微软大神Anders Hejlsberg(安德斯·海尔斯伯格,丹麦人,Turbo Pascal编译器的主要作者,Delphi、C#开发领导者,同时也是.NET奠基人之一)领衔开发的,兼容 ECMAScript 2015(ES6)规范,可选择编译成ES6或ES5规范的JavaScript代码(ECMAScript 3及以上版本)。

TypeScript可谓一门语言,其主要特性有:

  • 面向对象,并拥有一些函数式特性;
  • 类型语言;
  • 实现了注解、泛型等特性;
  • 适配大型App构建。

二.Ts的数据类型

Ts的数据类型约有7中,分别是:

数据类型 关键字 描述
任意类型 any 声明为 any 的变量可以赋予任意类型的值
数字类型 number 双精度 64 位浮点值。它可以用来表示整数和分数(可以表示进制类型的数据)
字符串类型 string 一个字符系列,使用单引号(’)或双引号(”)来表示字符串类型。反引号(`)来定义多行文本和内嵌表达式
布尔类型 boolean 表示逻辑值:true 和 false
数组类型 声明变量为数组
元组 元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要相同
枚举 enum 枚举类型用于定义数值集合。
void void 用于标识方法返回值的类型,表示该方法没有返回值
null null 表示对象值缺失
undefined undefined 用于初始化变量为一个未定义的值
never never never 是其它类型(包括 null 和 undefined)的子类型,代表从不会出现的值

三.数据类型应用

1.any类型:

顾名思义any就是任何的意思,那么TypeScript 针对编程时类型不明确的变量使用的一种数据类型:

let msg: any = 1 // 数字类型 msg = 'I am who I am' // 字符串类型 console.log(msg) msg = false // 布尔类型 console.log(msg) msg = [1, 2] //数组类型 console.log(msg) 

编译后:

var msg = 1; // 数字类型 msg = 'I am who I am'; // 字符串类型 console.log(msg); msg = false; // 布尔类型 console.log(msg); msg = [1, 2]; //数组类型 console.log(msg); 

在这里插入图片描述

2.number类型:

number代表的就是数字这一方面的数据类型,在ts中我们可以代表的不仅仅只是常见的十位数还有我们的进制表示,那么我们一起来看一下:

let number1: number = 0b1010 // 二进制 let number2: number = 0o744 // 八进制 let number3: number = 6 // 十进制 let number4: number = 0xf00d // 十六进制 console.log(number1, number2, number3, number4) 

编译后:

var number1 = 10; // 二进制 var number2 = 484; // 八进制 var number3 = 6; // 十进制 var number4 = 0xf00d; // 十六进制 console.log(number1, number2, number3, number4); 

在这里插入图片描述

3.string类型:

字符我们可以用''或者""和反引号(``)来定义多行文本和内嵌表达式来进行表示:

let names: string = '王者荣耀' let years: number = 10 let words: string = `今年是 ${ 
       name} 发布 ${ 
       years + 1} 周年` console.log(words) 

编译后:

var names = '王者荣耀'; var years = 10; var words = "\u4ECA\u5E74\u662F " + names + " \u53D1\u5E03 " + (years + 1) + " \u5468\u5E74"; console.log(words); 

在这里插入图片描述

4.Array类型:

数组有两种声明形式:

(1).[]:

// 在元素类型后面加上[] let arry1: number[] = [1, 2] 

(2).数组泛型:

// 或者使用数组泛型(类型自定,本文只是举例) let arry2: Array<number> = [1, 2] 
// 在元素类型后面加上[] let arry1: number[] = [1, 2] // 或者使用数组泛型(类型自定,本文只是举例) let arry2: Array<number> = [1, 2] console.log(arry1, arry2) 

编译后:

// 在元素类型后面加上[] var arry1 = [1, 2]; // 或者使用数组泛型(类型自定,本文只是举例) var arry2 = [1, 2]; console.log(arry1, arry2); 

在这里插入图片描述

5.元组:

前文说过:元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要相同
错误实例:

let msg: [string, number]; msg = ['王者荣耀', 11]; // 运行正常 msg = [11, '王者荣耀']; // 报错 console.log(msg[0]); // 输出  

那么我们在编译时就会报错:
在这里插入图片描述
正确:




let msg: [string, number]; msg = ['王者荣耀', 11]; // 运行正常 console.log(msg[0]); // 输出  

编译后:

var msg; msg = ['王者荣耀', 11]; // 运行正常 console.log(msg[0]); // 输出  

在这里插入图片描述

6.枚举:

enum Color { 
     Red, Green, Blue}; let c: Color = Color.Blue; console.log(c); // 输出 2 

编译后:

var Color; (function (Color) { 
      Color[Color["Red"] = 0] = "Red"; Color[Color["Green"] = 1] = "Green"; Color[Color["Blue"] = 2] = "Blue"; })(Color || (Color = { 
     })); ; var c = Color.Blue; console.log(c); // 输出 2 

在这里插入图片描述

7.void:

function hello(): void { 
      console.log("Hello World"); } 

编译后:

function hello() { 
      console.log("Hello World"); } 

在这里插入图片描述

8.null:

null在 JavaScript 中 null 表示 “什么都没有”。null是一个只有一个值的特殊类型。表示一个空对象引用。用 typeof 检测 null 返回是 object。

9.undefined:

在 JavaScript 中, undefined 是一个没有设置值的变量。typeof 一个没有值的变量会返回 undefined。Null 和 Undefined 是其他任何类型(包括 void)的子类型,可以赋值给其它类型,如数字类型,此时,赋值后的类型会变成 null 或 undefined。而在TypeScript中启用严格的空校验(–strictNullChecks)特性,就可以使得null 和 undefined 只能被赋值给 void 或本身对应的类型

10.never:

never 是其它类型(包括 null 和 undefined)的子类型,代表从不会出现的值。这意味着声明为 never 类型的变量只能被 never 类型所赋值,在函数中它通常表现为抛出异常或无法执行到终止点(例如无限循环)

let x: never; let y: number; // 运行错误,数字类型不能转为 never 类型 x = 123; // 运行正确,never 类型可以赋值给 never类型 x = (()=>{ 
      throw new Error('exception')})(); // 运行正确,never 类型可以赋值给 数字类型 y = (()=>{ 
      throw new Error('exception')})(); // 返回值为 never 的函数可以是抛出异常的情况 function error(message: string): never { 
      throw new Error(message); } // 返回值为 never 的函数可以是无法被执行到的终止点的情况 function loop(): never { 
      while (true) { 
     } } 

编译后:

var x; var y; // 运行错误,数字类型不能转为 never 类型 x = 123; // 运行正确,never 类型可以赋值给 never类型 x = (function () { 
      throw new Error('exception'); })(); // 运行正确,never 类型可以赋值给 数字类型 y = (function () { 
      throw new Error('exception'); })(); // 返回值为 never 的函数可以是抛出异常的情况 function error(message) { 
      throw new Error(message); } // 返回值为 never 的函数可以是无法被执行到的终止点的情况 function loop() { 
      while (true) { 
      } } 

在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220022.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午9:25
下一篇 2026年3月17日 下午9:25


相关推荐

  • 访问页面升级访问_容器化单页面应用中RESTful API的访问

    访问页面升级访问_容器化单页面应用中RESTful API的访问最近在工作中,需要让运行在容器中的单页面应用程序能够访问外部的RESTfulAPI。这个需求看起来并不困难,不过实现起来还是有些曲折的。在此,我就将这部分内容总结一下。在入正题之前,有个一问题,就是为什么要将单页面应用放在容器中运行?这个问题其实跟“为什么要将应用程序容器化”是一个问题。简单来讲,容器化的应用程序可以运行在任何具有容器执行环境的宿主平台上,比如可以在Linux系统中运行…

    2022年6月17日
    37
  • 什么是浏览器同源策略

    什么是浏览器同源策略所谓同源是指 域名 协议 端口相同为什么要有跨域限制因为存在浏览器同源策略 所以才会有跨域问题 那么浏览器是出于何种原因会有跨域的限制呢 其实不难想到 跨域限制主要的目的就是为了用户的上网安全

    2026年3月17日
    3
  • python使用RSA加密算法

    python使用RSA加密算法最近换了工作,由于新公司是做个人和企业征信业务的,所以对数据的隐私性看的非常重要,所有涉及隐私的数据一律都要进行加密进行传输。那么问题来了,对我我要做的工作,就是要实现我们接口自动化,免不了要接触加密-签名-解密-验签等一系列过程。这时候就觉得大学真的白学密码学了。。。基于我用python语言搞,那我这里就说说我是如何实现python对数据进行RSA加解密的吧。。一、查找python支…

    2022年5月4日
    51
  • java 注释 超链接_Java注释

    java 注释 超链接_Java注释注释 commentary 是程序中用于说明和解释的一段文字对程序运行不起作用 程序中添加注释的目的是增强程序的可读性 Java 提供 3 种注释方式 单行注释 多行注释 文档注释 文档注释用于从源代码自动生成文档执行 javadoc 命名根据源代码中的内容生成网页 XXX 不同格式的注释可以嵌套 Welcome1 java Text printingprog

    2026年3月18日
    3
  • HTML+CSS实战(一)——导航条菜单的制作

    HTML+CSS实战(一)——导航条菜单的制作一、垂直导航菜单的制作1、基本的样式清除:*{margin:0;padding:0}2、无序列表圆点去除:ul{list-style:none}3、下划线去除:a{text-decoration:none}4、文本缩进标签text-indent不会影响总体宽度(padding会)5、使用行高line-height可以实现文字默认居中,前提是行高和width相等。6、

    2022年7月22日
    14
  • Navicat 15 for MySQL激活码(在线激活)

    Navicat 15 for MySQL激活码(在线激活),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    155

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号