TypeScript入门-基本数据类型
作者:老板丶鱼丸粗面 发布时间:2024-06-07 15:56:50
大致介绍
TypeScript是由C#语言之父Anders Hejlsberg主导开发的一门编程语言,TypeScript本质上是向JavaScript语言添加了可选的静态类型和基于类的面向对象编程,它相当于是JavaScript的超集
ES5、ES6和TypeScript的关系:
安装
首先需要安装npm,然后在输入
npm install -g typescript
安装完成后,因为TypeScript是以.ts结尾的,要想运行就得把他编译js文件,编译的方法特别简单就是使用tsc命令
tsc hello.ts
通常在项目中ts文件比较多的情况下,我们需要自己配置tsconfig.json文件,以便能更好的编译ts文件,配置tsconfig.json文件不难,这里就不赘述,可以自行百度
基本类型
在TypeScript中有以下基本数据类型
• 布尔类型(boolean)
• 数字类型(number)
• 字符串类型(string)
• 数组类型(array)
• 元组类型(tuple)
• 枚举类型(enum)
• 任意值类型(any)
• null和undefined
• void类型
• never类型
布尔类型(boolean)
布尔类型是最简单的数据类型,只有true和false两种值
注意:布尔类型是不能赋予其他值的
let flag: boolean = true;
flag = 1; //报错
数字类型(number)
和JavaScript一样,TypeScript数字都是浮点型,也支持二进制、八进制、十进制和十六进制
let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
let binaryLiteral: number = 0b1010;
let octalLiteral: number = 0o744;
字符串类型(string)
可以用单引号(')和双引号(")来表示字符串类型,除此之外还支持使用模板字符串反引号(`)来定义多行文本和内嵌表达式。使用${ expr }的形式嵌入变量或表达式
let name: string = 'Angular';
let years: string = 7;
let words: string = `今年是 ${ name } 发布 ${ years } 周年`;
数组类型(array)
TypeScript数组的操作类似于JavaScript中数组的操作,TypeScript建议开发者最好只为数组元素赋一种类型的值,定义数组有两种方式
1、在元素类型后面加上[]
let arr: number[] = [2,3];
2、使用数组泛型
let arr: Array<number> = [2,3];
元组类型(tuple)
元组类型用来表示已知数量和类型的数组,各元素的类型不必相同
let x: [string,number];
x = ['Angular',5]; //正确
x = [5,'Angular']; //报错
枚举类型(enum)
枚举是一个可被命名的整型常数的集合,枚举类型为集合成员赋予有意义的名称增强可读性
enum Color {red,green,blue};
let c: Color = Color.blue;
console.log(c); //2
枚举默认下标是0,也可以手动修改
enum Color {red = 2,green = 3,blue = 6};
let c: Color = Color.blue;
console.log(c); //6
任意值类型(any)
任意值是TypeScript针对编程时类型不明确的变量使用的一种数据类型,常用于以下三种类型
1、值可能来自于动态的内容,比如来自用户输入或第三方代码库。 这种情况下,我们不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段的检查。
let x: any = 1;
x = 'I am a string';
x = false;
2、允许你在编译时可选择地包含或移除类型检查
let x: any = 4;
x.toFixed(); //正确,并不检查是否存在
3、定义储存各种类型数据的数组时
let arrarList: any[] = [1,'qwe',true];
null和undefined
默认情况下null和undefined是所有类型的子类型。 就是说你可以把null和undefined赋值给number类型的变量。
然而,如果启用--strictNullChecks,就可以使得null和undefined只能被赋值给void或本身对应的类型
let x: number;
x = 1;
x = null; //正确
启用 --strictNullChecks
let y: number;
y = 1;
y = null; //错误
void类型
使用void表示没有任何类型,例如一个函数没有返回值,意味着返回void
function hello(): void{
alert('hello Angular');
}
never类型
never是其他类型(包括null和undefined)的子类型,代表从不会出现的值,这意味着声明为never类型的变量只能被never类型所赋值,在函数中通常表示为抛出异常或无法执行到终止点
let x: never;
let y: number;
//报错
x = 123;
//正确
y = x;
来源:http://www.cnblogs.com/qqandfqr/p/6629324.html
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 目录各种姿势比较快的姿势最后各种姿势比如说有一个简单的任务,就是从 1 累加到 1 亿,我们至少可以有 7 种方法来实现,列举如下:1、wh
- 此功能已进入试用一周了,都没有问题,奇怪的是今天出现了问题?? AjaxRequestObj.createEqStatusParameter
- 目录1. matplotlib 模块概述2. matplotlib.pyplot 相关方法3. matplotlib.pyplot 图表展示
- 感觉上次写的植物大战僵尸与俄罗斯方块的反应还不错,这次这个文章就更有动力了这次就写一个天天酷跑吧写出来的效果图就是这样了下面就更新一下全部的
- Scipy高级科学计算库:和Numpy联系很密切,Scipy一般都是操控Numpy数组来进行科学计算、统计分析,所以可以说是基于Numpy之
- 用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的 SELECT语句,另外一种就是更新语句,也叫做数据操作语句。言外之 意
- 不可否认,阿里巴巴走得越来越快也越来越好。技术的成熟让很多B2B B2C网站都在跟风学习它们。在这里我就来说一说它的搜索效果吧。如图所示:&
- 在使用python做数据分析的时候,经常需要先对数据做统一化的处理,缺失值的处理是经常会使用到的。一般情况下,缺失值的处理要么是删除缺失数据
- mysql连接超时和mysql连接错误在生产环境中,偶尔且不规律的出现mysql连接超时和创建连接出错的问题:15-09-2020 13:2
- Windows10本机环境:win10未安装node,安装了nvm工具,尝试使用nvm安装我开发环境的node版本(10.9.0 or la
- 我就废话不多说了,大家还是直接看代码吧~package mainimport ("fmt""net/url&q
- 概述Object.freeze(obj)可以冻结一个对象。一个被冻结的对象再也不能被修改;冻结了一个对象则不能向这个对象添加新的属性,不能删
- 完美解决“换另一台电脑上用VS2008继续开发web项目时出现 “System.Runtime.InteropServices.COMExc
- 前言python中常用的写爬虫的库常有urllib2、requests,对于大多数比较简单的场景或者以学习为目的,可以用这两个库实现。这里有
- **一 tf.concat( ) 函数–合并**In [2]: a = tf.ones([4,35,8]) &n
- 对于大多数数据科学家而言,线性回归方法是他们进行统计学建模和预测分析任务的起点。这种方法已经存在了 200 多年,并得到了广泛研究,但仍然是
- 之前在懒懒分会上分享的一点关于border画小图的内容, 完整的ppt在这里.原理css盒模型一个盒子包括: margin+border+p
- mysql优化是我们日常工作经常遇到的问题,今天给大家说下MySQL常见的几种优化方案。注:原始资料来自享学课堂,自己加上整理和思考思考sq
- 一、前言xlwt模块是python中专门用于写入Excel的拓展模块,可以实现创建表单、写入指定单元格、指定单元格样式等人工实现的功能,一句
- 在一群里有朋友发问,有时间,也就看看了,不多说了,看图了:用一般的 select .... order 排序出来,就如下图了,是