这篇博客主要是讲述TS中原始数据类型的定义,有不足之处,还望大家指点(这里就不赘述TS的安装及编译方式了,详情可前往官网查看):

Typescript中原始数据类型:布尔类型(boolean)、数值类型(number)、字符串类型(string)、undefined、null等;

一、布尔类型(Boolean)

在JS中创建布尔值有两种语法格式:构造函数(new Boolean(value))和转换函数(Boolean(value));当以构造函数调用时,Boolean()会将传递进去的参数转换为一个布尔值,返回的是一个包含这个布尔值的Boolean对象;当以转换函数调用时,Boolean()会将传递进去的参数转换为一个原始的布尔值,返回的就是这个值,而不是包含该值的对象;

  • 返回false的情况:省略参数value、value的值为0、null、false、NaN;
  • 返回true的情况:value有值;

接下来我们来看在typescript中如何定义布尔值:

let a: boolean = false;   //这里用冒号来定义值类型,:左边是变量,:右边是指类型,=后面是赋值

上面我们JS中定义方式提到的以构造函数方式创建的Boolean对象,不是一个布尔值,而是一个包含布尔值的Boolean对象,所以在typescript中还可以用以下两种方式定义布尔值类型:

let a : Boolean = new Boolean(1);  // 这个返回的是包含布尔值的Boolean对象
或者是
let a : boolean = Boolean(1);      // 这个返回的是一个布尔值

二、数值类型(number)

在JS中我们定义数值类型一般有以下几种方式:

// 二进制
var a = 10010B;
// 八进制:例如
var a = 0o774;
// 十进制
var a = 24;
// 十六进制
var a = 130D;
// 科学计数
var a = 123e5;

在typescript中定义数值类型以及数据格式类型,跟JS相似,但是定义方式不用,在typescript中定义方式如下:

let a: number = 6;  // 即定义变量a为数值类型

三、字符串类型(string)

字符串类型在数据类型中是最常见的类型之一,在JS中的定义方式也很简单,如下:

var a = '1';
// 或者是
var a = "1";
// 即定义字符串类型只需要加上单引号或者双引号

在typescript中定义中也很简单,跟数值类型相似,在赋值的时候,我们直接在冒号右边定义数据类型,如下:

let a : string = '1';

在typescript中还可以使用ES6中的模板字符串,搭配${}嵌套模板,如下:

let name: string = 'kreme';  // 定义变量
let age: number = 25;      // 定义变量
let sentence: string = `my name is ${name},I'm ${age} years old`;   // 定义模板字符串

四、undefined 和 null

在JS中undefined类型只有一个值,即undefined,表现方式是当声明的变量还未被初始化时,变量的默认值为undefined,如下:

var a;   // 不做任何赋值,此时获取a的值类型为undefined

在typescript中,定义这两种类型,也同前面定义方式一样,如下:

let a : undefined = undefined;
let a : null = null;

在这里需要补充的是,undefined和null两种类型,是上述三种类型的子类型,如下:

let a : undefined;  // 首先定义变量a的值类型为undefined
let b : number = a; // 定义变量b的值类型为数值类型,但是赋值为a,此时编译不会报错,null相同

(在这里我们提一种特别的类型,就是空值类型,该类型在JS是没有的,在typescript中主要是表示没有任何返回值的函数,类型用void表示,在实际开发中几乎用不到,所以这里就不加叙述了)

typescript中的原始数据类型就介绍到这里,需要注意的是,定义好值类型后,如果赋值不属于该值类型或者该值类型的子类型,在编译过程中是会报错的,例如:

let a : number = 'string';
// 这里定义a的类型为数值类型,结果赋值为字符串,此时运行编译指令,则会报错;

下一篇为大家带来值类型的反推,欢迎大家给出意见和建议,不喜勿喷,谢谢!

TypeScript学习(一):原始数据类型的定义相关推荐

  1. typescript学习之路(三) —— ts定义类的方法(包含es5以及es6的定义类)

    提起类,不得不说一下,强类型编程语言,如php,java,c++等都有类的概念.而js作为一门弱类型语言,是没有类这个概念的,虽然也能模拟类的实现,但总归不是类.so,ts也只是模拟类而已,使得更贴切 ...

  2. typeScript基础(1)_原始数据类型学习

    typeScript系列将是学习ts的一些笔记,主要是为了以后及时的的回顾. 这个系列将会根据TypeScript 入门教程(202005)配合学习. 在这之前,我们需要先安装 npm install ...

  3. TypeScript学习笔记2:数据类型

    TS 和 JS 相对比的优势 TypeScript的安装步骤.运行问题及代码的简单运行 TypeScript学习笔记1:变量赋值及书写方式 TypeScript学习笔记2:数据类型 文章目录 数据类型 ...

  4. TypeScript学习(四):对象的定义及使用

    前面我们说到了数据类型,像什么布尔类型,数值类型,字符串类型等等,在开发中,我们还会遇到很多像对象.数组.函数等类型,那么在typescript中是怎么定义这些类型的? 对象(object) 我们先介 ...

  5. JavaScript TypeScript学习总结

    目录 一. JavaScript 1.JavaScript简介 2.基本语法 2.1 大小写敏感 2.2 标识符 2.3 注释 2.4 语句 2.4 关键字.保留字 2.5 变量 2.6. 操作符 2 ...

  6. JavaScript TypeScript学习总结

    本文章为web课学习JavaScript & TypeScript的学习总结 JavaScript & TypeScript学习总结 JavaScript JS介绍 JS基础 标识符 ...

  7. TypeScript学习文档-基础篇(完结)

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  8. TypeScript学习笔记1:变量赋值及书写方式

    TS 和 JS 相对比的优势 TypeScript的安装步骤.运行问题及代码的简单运行 TypeScript学习笔记1:变量赋值及书写方式 TypeScript学习笔记2:数据类型 文章目录 变量赋值 ...

  9. Typescript 学习笔记七:泛型

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

最新文章

  1. 卷积神经网络失陷,CoordConv来填坑(附代码&视频)
  2. 品牌管理-JSR303数据校验
  3. 去重 属性_面试中常问的List去重问题,你都答对了吗?
  4. Zabbix配置模板监控指定服务器主机
  5. [atlassian]Bamboo server 和 remote agent 只支持JAVA 1.8
  6. 中概股暴跌后的大厂员工:230万缩水至23万、和家人一起“开源节流”
  7. flex 只有仅限于文件系统的 SWF 文件和可信的本地 SWF 文件可以访问本地资源
  8. (转)Android权限列表permission说明 (一)
  9. 原子性判断,防并发思路
  10. oracle连接ORA-01017、ORA-12640
  11. KALI 2020 软件集成清单——逆向工程(七)
  12. 手把手教你用SPSS做出二元logistic回归分析
  13. 计算机设置桌面文件夹,win10电脑怎么更改桌面文件夹路径
  14. 计算机中sqrt函数是什么意思,sqrt是什么函数
  15. druid Hadoop-based Batch Ingestion
  16. 荣耀手机出售还可以用鸿蒙,华为荣耀整体出售对鸿蒙有何影响
  17. Vue实现图形化积木式编程(十三)
  18. PaddleOCR报错Process finished with exit code
  19. Graphviz画决策树中文乱码解决
  20. Netgear路由器救砖教程

热门文章

  1. Swing学习笔记1-----Swing组件类的层次
  2. Andirod——网络连接(HttpURLConnection)
  3. Unity 制作RPG小地图
  4. verify code
  5. apache隐藏版本信息及设置网页缓存
  6. 硬盘故障时如何强制关机:Input/output error
  7. 【SQL】update中使用case when
  8. display:inline-block间隙产生的原因以及解决方案
  9. MyBatis学习(01)之解决mapper绑定异常
  10. springboot集成mongoDB 异常认证