初识typescript和安装

什么是typescript

TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准。
TypeScript 由微软开发的自由和开源的编程语言。
TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。

语言特性

TypeScript 是一种给 JavaScript 添加特性的语言扩展。增加的功能包括:
类型批注和编译时类型检查
类型推断
类型擦除
接口
枚举
Mixin
泛型编程
名字空间
元组
Await

JavaScript 与 TypeScript 的区别

TypeScript 是 JavaScript 的超集,扩展了 JavaScript 的语法,因此现有的 JavaScript 代码可与 TypeScript 一起工作无需任何修改,TypeScript 通过类型注解提供编译时的静态类型检查。
TypeScript 可处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译。

安装

安装typescript之前需要npm工具安装 我们可以安装node.js
由于访问国外网络有问题,所以使用淘宝镜像 建议使用淘宝镜像安装

npm config set registry https://registry.npm.taobao.org
npm config set disturl https://npm.taobao.org/dist
npm -g install typescript

安装之后我们可以使用

$ tsc -v

来查看版本号 查询出来了就代表安装成功了

然后我们新建一个 test.ts 的文件,代码如下:

var message:string = "Hello World" 
console.log(message)

通常我们使用 .ts 作为 TypeScript 代码文件的扩展名。
然后执行以下命令将 TypeScript 转换为 JavaScript 代码:

tsc test.ts

这时候再当前目录下(与 test.ts 同一目录)就会生成一个 test.js 文件,代码如下:

var message = "Hello World";
console.log(message);

使用 node 命令来执行 test.js 文件:

$ node test.js 
Hello World

ts基础数据类型

1、any声明为 any 的变量可以赋予任意类型的值。

let x: any = 1;    // 数字类型
console.log(typeof(x));
x = 'hwc';    // 字符串类型
console.log(typeof(x));
x = false;    // 布尔类型
console.log(typeof(x));

在这里插入图片描述
2、ts中的语法定义变量需要带上类型

let x: number = 1; 
let name: string = 'hwc'; 
let bool:boolean = false;

数组类型

// 在元素类型后面加上[]
let arr: number[] = [1, 2];

// 或者使用数组泛型
let arr: Array<number> = [1, 2];

元组

元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要相同。

let arr: [string, number];
arr = ['hwc', 1];    // 运行正常
arr = [1, 'hwc'];    // 报错
console.log(x[0]);    // 输出 hwc

枚举

枚举类型用于定义数值集合。

enum Name {hwc, hbw, yyz};
let index: Name = Name.hwc;
console.log(index);    // 输出 0

void

用于标识方法返回值的类型,表示该方法没有返回值。

function name(): void {
    alert(" hwc");
}

null和undefined

null

在 JavaScript 中 null 表示 “什么都没有”。
null是一个只有一个值的特殊类型。表示一个空对象引用。
用 typeof 检测 null 返回是 object。

undefined

在 JavaScript 中, undefined 是一个没有设置值的变量。
typeof 一个没有值的变量会返回 undefined。
Null 和 Undefined 是其他任何类型(包括 void)的子类型,可以赋值给其它类型,如数字类型,此时,赋值后的类型会变成 null 或 undefined。而在TypeScript中启用严格的空校验特性,就可以使得null 和 undefined 只能被赋值给 void 或本身对应的类型,示例代码如下

let num: number;
num = 1; // 运行正确
num = undefined;// 运行错误
num = null;// 运行错误

如果一个类型可能出现 null 或 undefined, 可以用 | 来支持多种类型

let num: number | null | undefined;;
num = 1; // 运行正确
num = undefined;    // 运行错误
num = null;    // 运行错误

never

never 是其它类型(包括 null 和 undefined)的子类型,代表从不会出现的值。这意味着声明为 never 类型的变量只能被 never 类型所赋值,在函数中它通常表现为抛出异常或无法执行到终止点

let num: never;
let num1: number;
// 运行错误,数字类型不能转为 never 类型
num = 123;
// 运行正确,never 类型可以赋值给 never类型
num = (()=>{ throw new Error('exception')})();
// 运行正确,never 类型可以赋值给 数字类型
num1 = (()=>{ throw new Error('exception')})();
// 返回值为 never 的函数可以是抛出异常的情况
function error(message: string): never {
    throw new Error(message);
}	
// 返回值为 never 的函数可以是无法被执行到的终止点的情况
function loop(): never {
    while (true) {}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值