Typescript笔记(1):ts数据类型

boolean

最基本的数据类型就是简单的true/false值,在JavaScript和TypeScript里叫做boolean(其它语言中也一样)。

let isDone: boolean = false;
console.log(isDone);  // false

number

和JavaScript一样,TypeScript里的所有数字都是浮点数。 这些浮点数的类型是 number。 除了支持十进制和十六进制字面量,TypeScript还支持ECMAScript 2015中引入的二进制和八进制字面量。

let decLiteral: number = 6; // 十进制
let hexLiteral: number = 0x100; // 十六进制
let binaryLiteral: number = 0b100;  // 二进制
let octalLiteral: number = 0o100; // 八进制
console.log(decLiteral, hexLiteral, binaryLiteral, octalLiteral);  // 6 256 4 64

string

可以使用双引号( ")或单引号(')表示字符串;

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

let name1: string = "susan";
let name2: string = 'smith';
let name3: string =  = `Gene`

let age: number = 37;
let msg: string = `name: ${ name1 }, age :{ age }`
let msg1: string = "name: " + name1 + ",age:" + age
// msg与msg1的方式效果相同:
console.log(msg) // name:susan, age:37

Array

两种定义方式

第一种可以在元素类型后面接上[],表示由此类型元素组成的一个数组

第二种可以使用数组泛型,Array<元素类型>

// 第一种
let arr1: number[] = [1, 2, 3]
let arr2: string[] = ['1', '2', '3']
// 第二种
let arr3: Array<number> = [1, 2, 3]
let arr4: Array<string> = ['1', '2', '3']

元组Tuple

元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。 比如,你可以定义一对值分别为string和number类型的元组。

// Declare a tuple type
let x: [string, number];
// Initialize it
x = ['hello', 10]; // OK
// Initialize it incorrectly
x = [10, 'hello']; // Error

//当访问一个已知索引的元素,会得到正确的类型:
console.log(x[0].substr(1)); // OK
console.log(x[1].substr(1)); // Error, 'number' does not have 'substr'

// 当访问一个越界的元素,会使用联合类型替代:
x[3] = 'world'; // OK, 字符串可以赋值给(string | number)类型
console.log(x[5].toString()); // OK, 'string' 和 'number' 都有 toString
x[6] = true; // Error, 布尔不是(string | number)类型

object

object表示非原始类型,也就是除number,string,boolean,symbol,null或undefined之外的类型。

使用object类型,就可以更好的表示像Object.create这样的API。例如:

function create(o: object | null): void;

create({ prop: 0 }); // OK
create(null); // OK

create(42); // Error
create("string"); // Error
create(false); // Error
create(undefined); // Error

Any

表示任意数据类型

enum Flag {
    success,
    error
};

let flag: any = true;// boolean
let num: any = 123;// number
let str: any = 'string';// string
let arr: any = [1, 2, 3];// Array
let tuple: any = [100, 'string'];// Tuple元组型
let e: any = Flag.success;// enum
let n: any = null;// null
let u: any = undefined;// undefined型

void

void类型像是与any类型相反, 表示没有任何类型

当一个函数没有返回值时,可使用返回值类型是 void

function warn(): void {
    console.log("这是一个警告信息");
}

Null 和 Undefined

let u: undefined = undefined;
let n: null = null;

Never

表示的是那些永不存在的值的类型。

never类型是任何类型的子类型,也可以赋值给任何类型;

然而,没有类型是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) {
    }
}

enum枚举

// 枚举的定义
enum 枚举名 {
    标识符[= 整型常数/字符串],
    标识符[= 整型常数/字符串], 
    ...
    标识符[= 整型常数/字符串],
};

// 示例
enum Flag {
    success,
    error,
    overtime
};

let s: Flag = Flag.overtime;
console.log(s);// 2

Symbols

symbol类型的值是通过Symbol构造函数创建的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值