发表于: 2020-05-30 16:55:16

0 2035


TypeScript学习心得

基础类型:

基础规则:

let声明

:+类型

=赋值;


类型有:

数值:number

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

let age: number = 37;



字串: string

使用JavaScript为网页和服务器创建程序的另一个基本部分是使用文本数据。与其他语言一样,我们使用类型string来引用这些文本数据类型。与JavaScript一样,TypeScript也使用双引号(")或单引号(')包围字符串数据。

let color: string = "blue";color = 'red';

它可以跨越多行并具有嵌入式表达式。这些字符串由反引号/反引号(`)字符包围,并且嵌入式表达式的形式为${ expr }

let fullName: string = `Bob Bobbington`;

let age: number = 37;

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


布尔:Boolean

最基本的数据类型是简单的true / false值,JavaScript和TypeScript将该boolean称为

let isDone: boolean = false;


数组:Array

像JavaScript一样,TypeScript允许您使用值数组。数组类型可以用以下两种方法之一编写。首先,您使用元素的类型,后跟[]表示该元素类型的数组:

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

第二种方法使用通用数组类型Array<elemType>:

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


元祖:Tuple

元组类型允许您用固定数量的元素表示数组,这些元素的类型是已知的,但不必相同。例如,您可能希望将值表示为一对a stringnumber

let x: [string, number];

x = ["hello", 10]; // OK// Initialize it incorrectly

x = [10, "hello"]; // Error

访问一组已知索引之外的元素失败,并显示错误;(会对长度进行限制,查询超出长度的会报错


枚举:Enum

JavaScript是对标准数据类型集的有用补充enum与C#等语言一样,枚举是一种为数字值集赋予更友好名称的方法。

enum Color {Red, Green, Blue}

let c: Color = Color.Green;

提前创建一个类似 js里class 的模板

在来声明这个类

enum Color {Red = 1, Green, Blue}

enum Color {Red = 1, Green = 2, Blue = 4}

enum Color {Red = 1, Green, Blue}


您也可以在枚举中从数字值转到该值的名称例如,如果我们有值,2但不确定Color上面枚举中映射到的值,我们可以查找对应的名称

enum Color {Red = 1, Green, Blue}

let colorName: string = Color[2];

console.log(colorName); // Displays 'Green' as its value is 2 above


任何:Any

我们可能需要描述编写应用程序时不知道的变量类型这些值可能来自动态内容,例如来自用户或第三方库。在这些情况下,我们要选择退出类型检查,并让值通过编译时检查。为此,我们用以下any类型标记它们

let notSure: any = 4;

notSure = "maybe a string instead";

notSure = false; // okay, definitely a boolean



空洞:void

void有点相反any根本没有任何类型您可能通常将其视为不返回值的函数的返回类型

function warnUser(): void {

    console.log("This is my warning message");

}


声明类型的变量void没有用,因为只能分配null(仅在--strictNullChecks未指定的情况下,请参阅下一节)或undefined分配给它们:

(这是一个函数的返回类型,当声明为变量时则只能赋值为null(有限制;仅在--strictNullChecks未指定的情况下)和undefined)



let unusable: void = undefined;

unusable = null; // OK if `--strictNullChecks` is not given



空和未定义;null  || undefined


在TypeScript中,undefined和和null实际上都有各自的类型undefinednull分别命名为很像void,它们本身并不是非常有用:

let u: undefined = undefined;

let n: null = null;


默认情况下nullundefined是所有类型的子类型。 就是说你可以把 nullundefined赋值给number类型的变量。

但是,当使用--strictNullChecks标志时,nullundefined只能分配给any和各自的类型(一个例外undefined是也可以分配给void)。这有助于避免许多常见错误。如果要传递a stringnullor undefined,则可以使用并集类型string | null | undefined

如果使用--strictNullChecks 标志(即严格模式时)null不能分配给void 而undefined可以

并且严格模式下一个变量要变为undefined或者null必须声明时声明成并集类型;


永不:never:

该never类型表示值是不会发生的类型。例如,never是总是抛出异常或永不返回的异常的函数表达式或箭头函数表达式的返回类型;当变量never被任何永远不可能为真的类型保护范围缩小时,变量也会获取类型。

的never类型是其子类型,分配给,每一种类型; 但是,没有类型是never(never本身除外)的子类型或可分配给它的子类型。甚至any无法分配给never。

函数返回的一些示例never:



返回列表 返回列表
评论

    分享到