首页 > 其他 > 详细

TypeScript从零到一学习记录(二:数据类型)

时间:2020-06-07 20:37:07      阅读:47      评论:0      收藏:0      [点我收藏+]

  数据类型

  TypeScript支持与JavaScript几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用。

  

  1.布尔值:boolean,包括ture和false

let isDone: boolean = false;

  

  2.数字:number,TS中所有数字都是浮点数,同时支持二进制、八进制、十进制、十六进制字面量

let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
let binaryLiteral: number = 0b1010;
let octalLiteral: number = 0o744;

  

  3.字符串:string。

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

  let name: string = `Gene`;
  let age: number = 37;
  let sentence: string = `Hello, my name is ${ name }.
  I‘ll be ${ age + 1 } years old next month.`;

  编译为es5

"use strict";
var naqme = "Gene";
var age = 37;
var sentence = "Hello, my name is " + name + ".\nI‘ll be " + (age + 1) + " years old next month.";

  

  4.数组,指定数组只有一种类型

  方式一:

let list: number[] = [1, 2, 3];  // 不能包含number外的其他类型元素

  方式二(数组泛型):

let list: Array<number> = [1, 2, 3];  // 只能包含number元素

  

  5.元组,Tuple,数组的一种,可以指定数组多种类型

let x: [string, number];
x = [‘hello‘, 10]; // OK
// x[3] = ‘world‘; // error TS2493: Tuple type ‘[string, number]‘ of length ‘2‘ has no element at index ‘3‘.
x.push(‘word‘)  // OK
// x.push(true)    // error TS2345: Argument of type ‘true‘ is not assignable to parameter of type ‘string | number‘.

  

  6.枚举,enum,给参数赋予名字标识含义

enum flag_1 { first,success = 1, error = -1,other }
console.log(flag_1.success)  // 1,根据名称获取值
console.log(flag_1[1])   // success,根据值获取名字
console.log(flag_1.first)   // 0,不赋值时默认获取索引,从0开始
console.log(flag_1.other)   // 0,不赋值时默认从前一个成员的值开始编写,-1+1=0

  

  7.任意类型,any

  顾名思义,可以改变参数数据类型,和es5中一样

  常用场景:

// 定义含有多类型item的数组
let list: any[] = [1, true, "free"];
// 获取DOM节点
let box: any = document.querySelector(‘body‘)
box.style.color = ‘red‘

  

  8.null和undefined

// 常用于声明未赋值
var num:number|null|undefined
console.log(num)    // undefined

  

  9.没有任何类型,void,常用于定义方法时方法没有返回值

function getlist(): void {
    console.log(1)
} getlist()
function run(): number { return 1 } run()

  

  10.never,永远不存在的类型,没有类型是never的子类型,没有其他类型可以给never赋值(any也不可以),never是其他类型的子类型

// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
    throw new Error(message);
}

// 推断的返回值类型为never
function fail() {
    return error("Something failed");
}

// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
    while (true) {
    }
}

TypeScript从零到一学习记录(二:数据类型)

原文:https://www.cnblogs.com/jing-zhe/p/13061749.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!