基础类型

TypeScript除了支持与JaveScript几乎相同的数据类型,还支持实用的枚举类型。

布尔值

let isDone: boolean = false;

数字

和JavaScript一样,TypeScript里的所有数字都是浮点数
这些浮点数的类型是 number。除了支持十进制和十六进制字面量,TypeScript还支持ES6中引入的二进制和八进制字面量。

字面量
有专门的解释,也就是等号右面的赋值,可以是“”,也可以引号中有值。

let decLiteral: number = 6; // 十进制
let hexLiteral: number = 0xf00d; //十六进制
let binaryLiteral: number = 0b1010; // 二进制
let ocralLiteral: number = 0o744; // 八进制

字符串

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

let name: string = "hehe";
name = "zhang";

还可以使用模板字符串,可以定义多行文本和内嵌表达式
这种字符串是被反引号(`),并且以 ${expr}这种形式嵌入表达式的。

let name: string = "hehe";
let age: number = 18;
let sentence: string = ` Hello, my name is ${name}. I'll be ${age+1} years old next month.`;

这与下面定义的sentence的效果相同。

let sentence: string = "Hello, my name is " + name + ".\n\n" + "I'll be " + (age + 1) + " years old next month.";

数组

TypeScript有两种方式可以定义数组。
* 可以在元素类型后面接上 [],表示由此类型原色组长的数组

let list: number[] = [1,2,3];
  • 使用数组泛型,Array<元素类型>
let list: Array<number> = [1,2,3];

元组 Tuple

元祖类型表示一个一直原色数量和类型的数组,各元素的类型不必相同。类似于map。

let x: [string, number];
x = ['hehe', 18]; // ok
x = [18, 'hehe']; // error

顺序必须保持一致!

枚举

enum类型是对JaveScript标准数据类型的一个补充。像C#一样,使用枚举类型可以为一组数值赋予友好的名字。

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

默认情况下,从0开始为元素编号。你也可以手动的指定成员的数值。

enum Color {Red = 1, Green, Black, Blue};
et c: Color = Color.Red;
-----------------------------------------
enum Color {Red = 1, Green = 2, Black = 4, Blue = 7};
let c: Color = Color.Red;

枚举类型提供的便利就是你可以有枚举的值得到它的名字。例如,我们知道数值为2,但是不确定它映射到Color里的哪个名字,我们可以查找相应的名字:

enum Color {Red = 1, Green = 2, Black = 4, Blue = 7};
let colorName: string = Color[2];
alert(colorName);

任意值

当我们不清楚是什么值时,我们可以使用any类型来标记这些变量。

let notSure: any = 3;

在对现有代码进行改写的时候,any类型十分有用的,它允许你在编译时可选择性的包含或者移除类型检查。
你可以能认为,object有相似的作用,就像它在其他语言中那样。但是object类型的变量只是允许你给它赋任意值,但是却不能够在它上面调用任意的方法,即便有这些方法。

let notSure: any = 4;
notSure.ifItExists(); // okay, ifItExists might exist at runtime
notSure.toFixed(); // okay,toFixed exists (but the compiler doesn't check)let prettySure: Object = 4;
prettySure.toFixed(); // Error: Property 'toFixed' doesn't exist on type 'Object'.

空值

void类型像是与any类型相反,它表示没有任何类型。当一个函数没有返回值时,通常会见到其返回类型是void

声明一个void类型的变量没有什么大的用处,因为你只能为它赋予undefinednull

Null 和 Undefined

TypeScript里,undefinednull两者各有自己的类型分别叫做undefinednull,和void想死,他们的本身的类型用处不是很大。

默认情况下,nullundefined是所有类型的子类型。就是说你可以把nullundefined赋值给number类型的变量。

类型断言

类型断言好比其他语言中的强制类型转换,但是不进行特殊的数据检查和解构。它没有运行时的影响,只是在编译阶段起作用。
类型断言有两种形式:
* “尖括号”语法

let someValue: any = "this is a string.";
let strLength: number = (<string>someValue).length;
  • “as”语法
let someValue: any = "this is a string.";
let strLength: number = (someValue as string).length;

两种形式是等价的。但是,当你在TypeScript里使用JSX时,只有as语法断言是被允许的。


写在后面

GitHub上集大家之力搞了一个前端面试题的项目,里面都是大家面试时所遇到的题以及一些学习资料,有兴趣的话可以关注一下。如果你也有兴趣加入我们的话,请在项目中留言。项目同时也可以在gitbook上查看。

InterviewLibrary-GitHub
InterviewLibrary-gitbook

TypeScript-基础类型学习相关推荐

  1. TypeScript 基础类型 1

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

  2. typescript 基础类型定义

    1.typescript 类型定义 代码如下(示例): //基础类型/*** 1. 布尔 boolean* 2. 数字 number* 3. 字符串 string* 4. 数组 array* 5. 元 ...

  3. Typescript基础类型以及与Javascript对比

    TypeScript数据类型以及与JavaScript对比 文章目录 TypeScript数据类型以及与JavaScript对比 介绍 一.数据类型与基础数据类型 1.数据类型 2.基础数据类型 3. ...

  4. TypeScript 基础类型

    基础类型 基础类型可以依据是否含有类型关键字分为两类: 含:boolean.number.string.symbol.object.null.undefined.any.never 不含:数组.元组. ...

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

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

  6. TypeScript基础类型

    Typescript是由微软开发的一款开源的编程语言,是Javascript的超集,TS提供的类型系统可以帮助我们在写代码的时候提供更丰富的语法提示,让我们使用TypeScript来创建一个简单的We ...

  7. 【TypeScript系列教程06】基础类型

    目录 TypeScript 基础类型 任意类型 (any) 变量的值会动态改变时 改写现有代码时 定义存储各种类型数据的数组时 数字类型 (number)

  8. typescript基础

    TypeScript 基础语法 TypeScript 程序由以下几个部分组成: 模块 函数 变量 语句和表达式 注释 第一个 TypeScript 程序 我们可以使用以下 TypeScript 程序来 ...

  9. 系统学习 TypeScript(三)——基础类型

    前言 TypeScript 包含的基础类型总结起来有: 布尔值 数字 字符串 数组 元组 枚举 任意值 空值 Null 和 undefined Never Object 今天,我们就来详细了解一下各个 ...

  10. TypeScript基础入门 - 接口 - 可索引的类型

    转载地址 TypeScript基础入门 - 接口 - 可索引的类型 项目实践仓库 https://github.com/durban89/typescript_demo.git tag: 1.0.11 ...

最新文章

  1. 剑指offer:两个链表的第一个公共结点
  2. 几个经典的TCP通信函数
  3. JAVA多线程中wait()方法的详细分析
  4. 各种类型Android源代码
  5. POJ 327820493083
  6. 网络知识:宽带下载网速是30MB/s,经过路由器后仅10MB/s,看完你就懂了!
  7. 费用流-Wannafly Day2 TwoGraph-神题
  8. springmvc + mybatis + ehcache + redis 分布式架构
  9. 将一个十进制转换为二进制,八进制,十六进制
  10. 河北机电职业技术学院计算机分数线,河北机电职业技术学院历年分数线 2021河北机电职业技术学院录取分数线...
  11. power系列服务器问题PA模板,与 Power BI 报表服务器集成
  12. 服务器cpu最多几核心,决定虚拟服务器所需要的CPU核心数量是一件非常复杂的事情...
  13. mysql如何导出sql文件_MYSQL导入导出.sql文件
  14. 将EBS设为首页worklist删除误报
  15. 常用的网站建设程序有哪些?
  16. 系统集成项目管理工程师证有什么用处?
  17. C++ for_each函数
  18. 高斯输出文件批量读取能量
  19. SQL 中round(),floor(),ceiling()函数的用法和区别
  20. 杭州端点科技java,端点实习面试(一面)

热门文章

  1. html实现音乐界面设计,基于HTML5技术的音乐播放器的设计与实现.doc
  2. 什么是预付卡及预付卡发展前景
  3. 2022跨年烟花代码(三)HTML5点击页面烟花绽放特效
  4. [Solved] Javax.Crypto.AEADBadTagException: Tag Mismatch
  5. 复选框的对勾颜色怎么改
  6. 制作一个电影分享网站的微信公众号
  7. 爱普生EPSON实时时钟芯片-RX8900SA
  8. 基于二元语义的中文语序分析
  9. 《30天吃掉那只 TensorFlow2.0》 开篇辞(Tensorflow 学习之路)
  10. Axure绘制左侧菜单