TypeScript 是 JavaScript 的超集,这里我们只讨论两者中的不同的部分,或者需要注意的部分

数组 Array:在TypeScript中,有两种方式来定义一个数组:

在元素类型后面接上 [] ,表示此数组,是由该类型的元素所组成:

let list: number[] = [1, 2, 3]

使用数组泛型,意义是与第一种方式相同的

let list: Array<number> = [1, 2, 3]

总结: ts 与 js 中数组的区别在于,js 是一个弱类型的语言,所以 js 数组中的元素可以是不同类型的;但 ts 是不同的,严格意义上是不允许一个数组中的元素类型是不同的,如果非要这样做,可以将元素类型指定为 any 或者 let list: (string | number)[],不过这将失去严格的意义,因为数组(列表)的定义是:数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式,是用于储存多个相同类型数据的集合

元组 Tuple:表示一个已知元素 数量类型的数组,与数组的区别是,元组内各元素的类型不必相同。

创建一个元组:let x: [string, number] = ["hello", 123]

总结:ts 中的元组,不同于传统高级程序语言的元组的定义,首先它并不是一个“独立”的数据类型,因为使用Array.isArray(x)返回的true;其次,其元素可以动态修改的。可以说,其在某种场景下,是对 js 数组的兼容写法。

枚举 enum:是对 js 标准数据类型的一个补充。

枚举类型的定义与取值:

`enum Sex { Male, Female }

let s: Sex = Sex[0] || let s: Sex = Sex.Male

`

总结:可以将其理解为特殊的数组,其索引值是初始时就已经定好了的,其使用场景一般是用来定义,有限取值范围的变量;如:一周只有七天,性别只有两个等等。

Any:表示任意类型,常用来在编程阶段我们还不确定这个变量的具体类型时,可以正常的通过编译,在我们弄清该变量在程序上下文中的关系后,在将其指定为具体的类型。

需要弄清楚的是: Any 与 Object 之间的区别,Object 具有与 Any 相似的作用,但它们有本质的区别,Object 类型的变量,只能够允许将其赋任何值,但不能在它上面调用任何的方法,即使它真的有这个方法也不行。

Void:表示没有任何类型,它与 Any 是有本质的区别的,它们的意义刚好相反。常用来表示一个没有任何返回值的函数的返回值类型。

function demo(): void {....}

Null 和 Undefined:它们是两种数据类型,它们分别只有一个值,就是其本身,所以将一个变量的类型指定为这两者中的任意一个都是没有意义的。只需要直接赋值即可。

Never:表示那些永远不存在的值的类型。常用来表示那些只要运行的就会抛出异常的函数的返回值类型。返回 never 的函数必须存在无法到达的终点。

类型断言:告诉编译器,“相信我,我知道我在做什么,不要给我报错了。。。。”; 相当于其它高级语言中的 类型转换。

例如:

`

let str: any = 'hello'

let len: number = (str).length

`

另一种写法:

`

let str: any = 'hello'

let len: number = (str as string).length

`

注意:本质上,这两种写法都是被认可的,但是在 JSX 中,只有第二种写法才被允许。

《从零开始TypeScript》系列 - 基础数据类型的更多相关文章

  1. TypeScript_基础数据类型

    TypeScript 的基础数据类型包含: string.number.boolean.array .object.null.undefined.enmu.void.never.any.tuple 注 ...

  2. 《前端之路》 - 初试 TypeScript(一)基础数据类型

    一.先讲讲 TypeScript 什么是 typeScript ? typeScript 是 Javascript 的超集 我们用一张图来简单介绍下 ts 和 js 清清楚楚明明白白的关系- 为什么会 ...

  3. TypeScript学习指南第一章--基础数据类型(Basic Types)

    基础数据类型(Basic Types) 为了搭建应用程序,我们需要使用一些基础数据类型比如:numbers,strings,structures,boolean等等. 在TypeScript中除了Ja ...

  4. TypeScript基础数据类型

    Typescript与Javascript 二者的区别 作为前端开发的基础语言javascript已经深入人心,人人皆知.作为变成入门的最简单语言,Javascript语言以动态.弱类型语言而著名,学 ...

  5. 四.python基础数据类型

    一.什么是数据类型? 什么是数据类型? 我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不 ...

  6. TypeScript之基本数据类型

    前言 最近项目很急,所以没有什么时间回答关于Xamarin.Android方面的问题,也有一段时间没有更新.主要是手头很缺人,如果有谁有兴趣加入我们的话,可以私聊我,这样我就能继续造福社区了,同时还有 ...

  7. SQL Server调优系列基础篇(常用运算符总结——三种物理连接方式剖析)

    前言 上一篇我们介绍了如何查看查询计划,本篇将介绍在我们查看的查询计划时的分析技巧,以及几种我们常用的运算符优化技巧,同样侧重基础知识的掌握. 通过本篇可以了解我们平常所写的T-SQL语句,在SQL ...

  8. SQL Server调优系列基础篇(常用运算符总结)

    原文:SQL Server调优系列基础篇(常用运算符总结) 前言 上一篇我们介绍了如何查看查询计划,本篇将介绍在我们查看的查询计划时的分析技巧,以及几种我们常用的运算符优化技巧,同样侧重基础知识的掌握 ...

  9. 从 JavaScript 到 TypeScript 系列

    随着应用的庞大,项目中 JavaScript 的代码也会越来越臃肿,这时候许多 JavaScript 的语言弊端就会愈发明显,而 TypeScript 的出现,就是着力于解决 JavaScript 语 ...

随机推荐

  1. POJ2785 4 Values whose Sum is 0 (二分)

    题意:给你四组长度为\(n\)序列,从每个序列中选一个数出来,使得四个数字之和等于\(0\),问由多少种组成情况(仅于元素的所在位置有关). 题解:\(n\)最大可以取4000,直接暴力肯定是不行的, ...

  2. HDU2732 Leapin' Lizards 最大流

    题目 题意: t组输入,然后地图有n行m列,且n,m<=20.有一个最大跳跃距离d.后面输入一个n行的地图,每一个位置有一个值,代表这个位置的柱子可以经过多少个猴子.之后再输入一个地图'L'代表 ...

  3. Spring中AOP学习笔记

    AOP 描述(摘抄百度百科) AOP开发中的相关操作术语 实例(xml方式) 通知的类型 切入点表达式的写法: 实例(注解方式) 描述(摘抄百度百科) AOP(面向切面编程):Aspect Orien ...

  4. 局部变量 static new 结构体指针

    struct ListNode { int val; ListNode* next; ListNode(int x) : val(x), next(NULL) {} }; 有一个函数利用LisNode ...

  5. C# 类 (8) - 抽象方法

    抽象 抽象方法 只能 定义在抽象类 里,并且抽象方法里没有具体的代码,像这种 为啥要定义一个空空如也的函数呢?这是为了用来约束 它的派生类 的行为, 这个例子,建立了一个数组,放了cat和dog,这两 ...

  6. 12.tomcat7切换tomcat8导致cookie异常

    一.现象 换成Tomcat8后出现cookie报错 二.分析 经异常去查看源码发现,Tomcat8对cookie校验规则改变,更为严格的校验了cookieHeader不允许有, 日志中的[XXXXX, ...

  7. JavaScript string repeat methods All In One

    JavaScript string repeat methods All In One There are many ways in the ES-Next ways repeat ES2015 / ...

  8. short URL 短网址实现原理剖析

    short URL 短网址实现原理剖析 意义,简短便于分享,避免出现超长 URL 的字符长度限制问题 原理分析, 使用 HashMap 存储对应的映射关系 (长度不超过7的字符串,由大小写字母加数字共 ...

  9. npm-run-all

    npm-run-all npm scripts https://www.npmjs.com/package/npm-run-all A CLI tool to run multiple npm-scr ...

  10. fibonacci all in one

    fibonacci all in one fibonacci sequence https://www.mathsisfun.com/numbers/fibonacci-sequence.html f ...