基础知识脑补下

在 JavaScript 的类型分为两种:

  • 原始数据类型(Primitive data types)
  • 对象类型(Object types)

其中,原始数据类型包括:布尔值、数字、字符串、null、undefined 以及 ES6 中的新类型 Symbol。本章选择性讲前 5 种还有空值。

布尔值

它是最基础的数据类型,其值是 true/false。在 JavaScript 和 TypeScript 里都使用 boolean 来定义(其它语言中也一样)。

// boolean.ts
let isDone: boolean = false;
复制代码

编译(tsc boolean.ts)后

// boolean.js
var isDone = false;
复制代码

问:使用构造函数 Boolean 来创造可以么?比如

// boolean2.ts
let isDoneByNewBoolean: boolean = new Boolean(1);
复制代码

编译(编辑器里)前

编译后

问题在于 new Boolean(1) 返回的是一个对象。

再问:直接使用 Boolean(1) 怎样?

// boolean3.ts
let isDoneByBoolean: boolean = Boolean(1);
复制代码

编译后

// boolean3.js
var isDoneByBoolean = Boolean(1);
复制代码

Boolean(1) 返回的是个布尔值。

数字

和 JavaScript 一样,TypeScript 里的所有数字都是浮点数,类型是 number

// number.ts
let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
let binaryLiteral: number = 0b1010; // ES6 中的二进制表示法
let octalLiteral: number = 0o744;   // ES6 中的八进制表示法
let notANumber: number = NaN;
let infinityNumber: number = Infinity;
复制代码

编译后

// number.ts
var decLiteral = 6;
var hexLiteral = 0xf00d;
var binaryLiteral = 10; // ES6 中的二进制表示法
var octalLiteral = 484; // ES6 中的八进制表示法
var notANumber = NaN;
var infinityNumber = Infinity;
复制代码

字符串

和 JavaScript 一样,使用 string 表示文本数据类型,可以用**双引号(")或单引号(')**表示字符串。

// string.ts
let str: string = 'Typescript';
let say: string = `Hello, ${str}`;
复制代码

编译后

// string.js
var str = 'Typescript';
var say = "Hello, " + str;
复制代码

null 和 undefined

在 TypeScript 的世界里,nullundefined 可用自身来定义数据类型。不过其用书不大。

// null-undefined.ts
let u: undefined = undefined;
let n: null = null;
复制代码

编译后

// null-undefined.js
var u = undefined;
var n = null;
复制代码

问:那将值 nullundefined 换个位置会怎样呢?

// null-undefined2.ts
let u: undefined = null;
let n: null = undefined;
复制代码

编译后

// null-undefined2.js
var u = null;
var n = undefined;
复制代码

问:那像下面这样呢?

// null-undefined3.ts
let nu: number = undefined;
let nn: number = null;let su: string = undefined;
let sn: string = null;let bu: boolean = undefined;
let bn: boolean = null;
复制代码

编译后

// null-undefined3.js
var nu = undefined;
var nn = null;
var su = undefined;
var sn = null;
var bu = undefined;
var bn = null;
复制代码

从上面 3 个例子,可基本判断,nullundefined 是所有类型的子类型(可以把 nullundefined 赋值给 number 等所有类型的变量,也就是赋值没多大意义)。

空值

在 JavaScript 的世界里是没有空值的概念,但在 TypeScript 中,可以用 void 表示没有任何返回值的函数。

// void.ts
function sayTs(): void {console.log('Hello, Typescript');
}function sayTs2(): void {return 'Hello, Typescript';
}
复制代码

编译前

编译后

但还是编译出来了

// void.js
function sayTs() {console.log('Hello, Typescript');
}
function sayTs2() {return 'Hello, Typescript2';
}
复制代码

问:voidnull(或undefined)间关系如何?

// void2.ts
let u: void = undefined;
let n: void = null;
复制代码

编译后

// void2.js
var u = undefined;
var n = null;
复制代码

问:voidstring(numberboolean)关系如何?

// void3.ts
let n: void = 1;
let b: void = false;
let s: void = '1';
复制代码

编译前

编译后

但还是编译出来了

// void3.js
var vn = 1;
var vb = false;
var vs = '1';
复制代码

总结下,只能将 undefinednull 和没有返回值的函数赋值给 void(空值)类型。

本次代码 Github

You can

上一篇:Typescript 的成长环境

下一篇:Typescript 任意值

转载于:https://juejin.im/post/5d0b9e1f51882531fc431d60

Typescript 基本类型相关推荐

  1. 简单探讨TypeScript 枚举类型

    这篇文章主要介绍了TypeScript 枚举类型,TypeScript 在 ES 原有类型基础上加入枚举类型,使得在 TypeScript 中也可以给一组数值赋予名字,这样对开发者比较友好,可以理解枚 ...

  2. TypeScript 基础类型 1

    TypeScript 基础类型 自本节起,我们将开始接触 TypeScript 的类型系统,这也是 TypeScript 最为核心的部分. 本节介绍 TypeScript 中一些基础类型,有些特殊类型 ...

  3. 快速而深入地了解TypeScript及其类型

    by David Piepgrass 由David Piepgrass 快速而深入地了解TypeScript及其类型 (A quick yet in-depth tour of TypeScript ...

  4. TypeScript 基础类型+函数+接口+类

    1.简介: TypeScript 是 JavaScript 的一个超集.由微软开发的自由和开源的编程语言.设计目标是开发大型应用.是一种面向对象的编程语言,遵循强类型 javascript与types ...

  5. PART16 TypeScript高级类型

    文章目录 TypeScript高级类型 class类 构造函数 实例方法 类的继承 类成员的可见性 类型兼容性 接口之间的兼容性 函数之间的兼容性 参数个数 参数类型 返回值类型 交叉类型 泛型 泛型 ...

  6. TypeScript高级类型:联合类型、交叉类型和类型别名

    目录 引言 联合类型 交叉类型 类型别名 注意 结论 引言 TypeScript 是一门强类型语言,其高级类型功能使得开发者能够更加灵活地定义类型并对其进行操作,以便于更好地编写可维护和可扩展的代码. ...

  7. typescript索引类型_TypeScript类型声明书写详解

    本文总结一下TypeScript类型声明的书写,很多时候写TypeScript不是问题,写类型就特别纠结,我总结下,我在使用TypeScript中遇到的问题.如果你遇到类型声明不会写的时候,多看看lo ...

  8. 【译】Typescript的类型(二)

    原文地址:TypeScript - JavaScript with superpowers II 原文作者:Indrek Lasn 译者:liaozeen Enum 枚举(enumerations)允 ...

  9. typescript基本类型demo

    //常量定义 let isDone: boolean = false; let age:number = 30; let sex:string = 'man'; let list:number[] = ...

最新文章

  1. 智能车竞赛技术报告 | 智能视觉组 - 大连海事大学 - 菜鸡啄米
  2. 从0到1开发实战手机站(二):Git提交规范配置
  3. 纸的大小图解_折纸大全图解基础之如何裁切美元尺寸纸张
  4. 网易视频云分享:如何搭建视频转码集群
  5. hdu 1198农田灌溉
  6. WindowsXP如何设置共享权限
  7. Windows网络编程之(二)Socket通信非阻塞模式Select(TCP和UDP)
  8. Xshell官网下载地址
  9. linux C语言获取鼠标的绝对坐标/位置
  10. 八个处理好职场人际关系的必备技巧
  11. 停车场计费算法 php,时段计费算法,一般用于停车计费
  12. 香港自由行——写在前言
  13. 39个让你受益的HTML5教程
  14. 蓝牙连接测试系统软件,蓝牙测试软件官方版
  15. 完整iOS APP发布App Store上架流程指南
  16. 史上最全面的python学生管理系统教程(二)
  17. 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式
  18. linux缓存无法写入,Linux下搭建网站提示缓存文件写入失败解决方法?
  19. python box2d第三方库如何使用_【Python基礎】安裝python第三方庫
  20. Mechanical Phish: Resilient Autonomous Hacking

热门文章

  1. tar压缩解压命令详解
  2. Navicat和DBeaver的查询快捷键
  3. IFE JavaScript Task0002-1 小练习1:处理用户输入
  4. Android点击事件(click button)的四种写法
  5. Spring整合Quartz定时发送邮件
  6. Java中关于==和equal的区别 以及equals()方法重写
  7. 升级 90天 vs2008 在win2008下。
  8. POJ 2752 同一个串的前后串
  9. hdu4665 DFS
  10. 【错误记录】Android Studio 中查看 Gradle 配置的方法源码 ( 配置 gradle-wrapper.properties 中版本为 gradle-x.x.x-all.zip )