TS学习 -TypeScrip(数据类型)

231次阅读
没有评论

共计 1841 个字符,预计需要花费 5 分钟才能阅读完成。

TypeScrip1(数据类型)

TS 是 JS 的超集,所以 JS 基础的类型都包含在内

变量声明语法:冒号 : 前面是变量名称,后面是变量类型。

字符串类型

let a: string = 'JIANG'
// 普通声明

// 也可以使用 es6 的字符串模板
let str: string = `dddd${a}`

数字类型

支持十六进制、十进制、八进制和二进制;

let str: number = NaN;//Nan
let num: number = 123;// 普通数字
let infinityNumber: number = Infinity;// 无穷大
let decimal: number = 6;// 十进制
let hex: number = 0xf00d;// 十六进制
let binary: number = 0b1010;// 二进制
let octal: number = 0o744;// 八进制 s 

布尔类型

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

let isDone: boolean = false;

数组

TypeScript 像 JavaScript 一样可以操作数组元素。有两种方式可以定义数组。第一种,可以在元素类型后面接上 [],表示由此类型元素组成的一个数组:

let list: number[] = [1, 2, 3];

第二种方式是使用数组泛型,Array< 元素类型 >

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

Any

有时候,我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。这些值可能来自于动态的内容,比如来自用户输入或第三方代码库。这种情况下,我们不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段的检查。那么我们可以使用 any类型来标记这些变量:

let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false; // okay, definitely a boolean      

Void

当一个函数没有返回值时,可以将其返回值类型定义为 void

function warnUser(): void {console.log("This is my warning message");
}

声明一个 void 类型的变量没有什么大用,因为你只能为它赋予 undefinednull

let unusable: void = undefined;

null 类型和 undefined 类型

TypeScript 里,undefinednull 两者各自有自己的类型分别叫做 undefinednull。和 void相似,它们的本身的类型用处不是很大:

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

Never

never类型表示的是那些永不存在的值的类型。例如,never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型;变量也可能是 never类型,当它们被永不为真的类型保护所约束时。

never类型是任何类型的子类型,也可以赋值给任何类型;然而,没有 类型是 never 的子类型或可以赋值给 never 类型(除了 never 本身之外)。即使 any也不可以赋值给never

下面是一些返回 never 类型的函数:

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

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

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

Object

object表示非原始类型,也就是除 numberstringbooleansymbolnullundefined之外的类型。

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

declare 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
正文完
  1
领导、我小江🎉
版权声明:本站原创文章,由 领导、我小江🎉 2023-02-13发表,共计1841字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)