《揭秘Angular 2》-基本类型

 最近在学习《揭秘Angular 2》想向大家分享一下,就从Angular 2入门 TypeScript开始讲起:

TypeScript是一种由微软开发的自由和开源的编程语言。它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。安德斯·海尔斯伯格,C#的首席架构师,已工作于TypeScript的开发。

    ES6中引入了,let变量声明和const常量声明,箭头函数等特性,极大的增强了JavaScript语言开发的能力。


typescript安装

通过npm安装typescript:
1.npm install -g typescript
2.tsc -v 检查typescript版本(tsc是typescript的编译命令)


TypeScript 基本类型


在TypeScript中,提供了一下基本数据类型

  • 布尔类型(boolean)
  • 数字类型(number)
  • 字符串类型(string)
  • 数组类型(array)
  • 元组类型(tuple)
  • 枚举类型(enum)
  • 任意值类型(any)
  • null 和 undefined
  • void 类型
  • never 类型
其中元组类型(tuple)、枚举类型(enum)、任意值类型(any)、void 类型和 never类型是TypeScript特有类型。

注:在TypeScript中声明变量,需要加上类型声明


TypeScript布尔类型
  • 布尔类型是最简单的数据类型,只有true和false两种值。如果我们给flag设置初始值为布尔值,再给flag赋别的值是,就会报错
let flag: boolean = true;

flag = 1; // 报错


TypeScript数字类型

  • typescript的数字类型均为浮点型,但同时支持二进制,八进制,十进制和十六进制。
let num1 : number = 0b1010;//二进制
let num2 : number = 0o744;//八进制
let num3 : number = 6;//十进制

let num4 : number = 0xf00d;//十六进制


TypeScript字符串类型
  • typescript支持使用单引号或者双引号来表示字符串类型。
//定义字符串类型
let name1 : string = "I";

let years : number = 18;


TypeScript数组类型
  • typescript数组操作类似于JavaScript中数组的操作,但建议开发者最好只为数组元素赋一种类型值。
typescript有两种数组定义方式。
//定义数组方式
//在元素后面接上[]
let arr : number[] = [1,2];
//使用数组泛型

let arr2 : Array<number> = [1,2]; 


TypeScript元组类型
  • 元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同。
let x : [string, number];
x = ['I',18];
//x = ['18','typescript'];//报错

console.log(x[0])

TypeScript枚举类型
  • 枚举类型是一个可被命名的整数型常量的集合,枚举类型为集合成员赋予有意义的名称,增强可读性。
//定义枚举类型
enum Color {red , green , blue}
//枚举默认下标为0,但可以手动修改
//enum Color {red = 4 , green , blue = 7}
let c : Color = Color.blue;

console.log(c);

TypeScript任意值类型
  • 任意值针对的是类型不明确的变量变量值会动态变化时,任意值类型可以帮助这些变量跳过编译阶段的类型检查
let a : any = 1;
a = "hello";
a = false;

  • 改写现有代码时,任意值允许在编译时可选择地包含和移除类型检查
let x: any = 4;
x.ifItExists();    // 正确,ifItExists方法在运行时可能存在,但这里并不会检查
x.toFixed();    // 正确

  • 定义各种类型数据数组时
let arrayList: any[] = [1, false, 'fine'];

arrayList[1] = 100;

typescript  null 和 undefined
  • 默认情况下,null 和 undefined 是其它类型的子类型,可以赋值给其它类型,如数字类型,此时,赋值后的类型会变成 null 或 undefined。在typescript中启用严格的空校验特性,使得null和undefined只能赋值给void或本身对应的的类型。可以用“ | ”支持多类型
  • null和undefined也有自己本身的类型,但我们不建议使用
// 启用 --strictNullChecks

let x: number;

let y: number |undefined;

let z: number|null| undefined;


x = 1; // 运行正确

y=1;// 运行正确

z=1;// 运行正确


x = undefined;    // 运行错误

y=undefined; // 运行正确

z=undefined;// 运行正确


x = null;    // 运行错误

y=null;  // 运行错误

z=null;// 运行正确


x=y;  // 运行错误

x=z;  // 运行错误

y=x;// 运行正确

y=z;// 运行错误

z=x;// 运行正确

z=y;// 运行正确

上面的例子中变量y允许被赋予数字类型undefined或undefined类型的数据值,而变量z还额外支持null。

TypeScript官方建议在编码时,都启用--strictNullchecks特性,这样有利于编写更强壮的代码。

TypeScript  void 类型
  • 在typescript中,void表示没有任何类型。如果一个函数没有返回值,它的返回值就是void。
function hello ():void{
    alert("hello typescript")
}

TypeScript  never 类型
  • never是其他类型的子类型,代表不会出现的值。这就意味着声明为never的类型的变量只能被never类型所赋值,在函数中它通常表现为抛出异常或者无法执行到终止点。
let x: never;
let y: number;

// 运行错误,数字类型不能转为 never 类型
x = 211;


// 运行正确,never 类型可以赋值给 never类型
x = (()=>{ throw new Error('exception')})();


// 运行正确,never 类型可以赋值给 数字类型
y = (()=>{ throw new Error('exception')})();


// 返回值为 never 的函数可以是抛出异常的情况
function error(message: string): never {
    throw new Error(message);
}

// 返回值为 never 的函数可以是无法被执行到的终止点的情况
function loop(): never {

   while (true) {}

}


TypeScript基本类型已经总结完,希望对大家有帮助哦~~~see  you..


  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值