typescript 解析xml-TypeScript基础学习

2023-08-24 0 1,245 百度已收录

流程学习笔记

我在看ts代码的时候,发现很多ts代码似乎是通过减少js代码上的类型注释而做出来的,(这只是一个ts初学者的理解),这对于js玩家来说非常友好。 兼容js代码。

2. TypeScript 和 javascript 的区别

TypeScript 是 JavaScript 对象的扩展。

JavaScript 代码无需任何更改即可与 TypeScript 一起使用,并且编译器可以使用

TypeScript 代码转换为 JavaScript。

TypeScript 通过类型注释提供编译时静态类型检查。

TypeScript 中的数据需要显式类型,而 JavaScript 不需要。

TypeScript 为函数提供默认参数值。

TypeScript 引入了 JavaScript 中不存在的 **“类”概念**。

TypeScript 引入了模块的概念,可以将声明、数据、函数和类封装在模块中。

3.TypeScript的优点

静态输入

静态类型是一种在开发人员编写脚本时检查错误的功能。 查找并修复错误对于当今的开发团队来说势在必行。 借助此功能,将允许开发人员编写更强大的代码并对其进行维护,从而促进更好的代码质量和清晰度。

大型开发项目

有时,为了改进开发项目,需要对代码库进行小的增量更改。 这些微小的变化可能会产生严重的、意想不到的后果,因此需要撤消这些变化。 使用 TypeScript 工具进行构建更改既简单又快速。

更好的合作

开发小项目的时候,开发人员会很多,这时候出现乱码和错误的机会就会减少。 类型安全是一种在编码过程中检查错误的功能,而不是在编译项目时检查错误。 这为开发团队创建了更高效的编码和调试过程。

更高的生产力

干净的 ECMAScript 6 代码、自动完成和动态类型等激励措施有助于提高开发人员的工作效率。 这些功能还可以帮助编译器创建优化的代码。

4.TypeScript 特性

类型注释和编译时类型检查:在编译时注释变量类型

类型推断:ts中没有注解变量类型会手动推断变量的类型

类型擦除:编译期间注释的内容和套接字在运行时被工具擦除

接口:ts使用socket来定义对象类型

枚举:用于数值限制在一定范围内的场景

Mixin:可以接受任何类型的值

通用编程:

名称空间:名称仅在本区域有效,其他区域可以复用该名称,不会发生冲突。

元组:元组组合了不同类型的对象,相当于一个可以保存不同类型数据的字段。

等待:

2. TypeScript 基础知识 1. 安装

npm install -g typescript

ts的文件后缀通常是.ts

在 TypeScript 中编写 React 时,文件扩展名为 .tsx

编译:

tsc hello.ts//hello.ts是文件名

2.Hello world ts实例

function sayHello(person: string) {    return "Hello, " + person;}let user = "Tom";console.log(sayHello(user));

typescript 解析xml-TypeScript基础学习

在前面的代码中:string是我们为person指定的变量类型。 其他句型与js相同。

3. 原始数据类型

原始数据类型包括:boolean、numeric、string、null、undefined以及ES6中的新类型Symbol和ES10中的新类型BigInt

前几个比较简单,我就不细说了,我就写一下BigInt

Bigint 任意精度整数

在javaScript中,number可以精确表达的最大数字是2^53,没有比这个更大的数字了,

Number可以表示的最大安全范围是正负2^53 - 1。也就是说,Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER.BigInt类型的出现可以解决这个问题。 大于2^53的数字可以用BigInt类型表示

4.任意值(任意)

任何 任何值类型

与名称一样,any 值是不确定类型的值。

任何类型,允许形式参数化为任何类型

我的理解是 ts 变量被定义为任何类型。 回到解放前一夜之间,就和js一样了。

变量的类型由作为形式参数提供给它的数据确定。

mix类型:可以接受任何类型的值

注意:如果ts中没有指定变量,则默认为任意类型

5. 类型推断

类型推断简单理解就是在ts的句型中,如果一个变量没有定义类型,就会被手动进行类型推断

如果变量没有形参,则会按类型推导为任意类型

注意:如果定义时没有形参,那么以后无论有没有形参,都会被推断为任意类型,根本不会被类型检测到:

6. 联合类型

使用类型检测时可以使用多种数据类型,也就是说一个变量可以定义多种数据类型

例如:

let pc: string | number;pc = one ;pc = 1 ;

在前面的例子中,变量pc同时被定义为字符串和数字,也就是所谓的联合类型。

联合类型中的数据类型以 | 分隔

当ts不确定变量是联合类型中的类型时,它只能访问联合类型所有类型共有的属性或方法:

例如在前面的例子中

如果我们不确定 pc=1 或 pc=1

使用length属性会报错,因为length属性不是数字的方式

使用字符串方法不会报错,因为两者都有字符串技巧。

7. 接口

接口只是用来描述对象的类型

数据的类型有数字空字符串等数据格式typescript 解析xml,对象的类型通过socket来描述。

这里借用阮一峰老师的例子:

interface Person {    name: string;    age: number;}let tom: Person = {    name: "Tom",    age: 25};

在本例中,Person 是我们定义的一个套接字。 定义了两个变量name和age

这样就比较容易理解了,当person套接字中同时包含name和age属性时,直接调用person,而不是分别调用各个属性。

这里有几点需要注意:

1、定义的变量属性个数要和socket的一致,不能多也不能少

2.接口中可以使用任意属性来定义socket

    name: string;    age?: number;    [propName: string]: any;}let tom: Person = {    name: "Tom",    gender: "male"};

在上面的代码中:

使用 [propName: string] 定义任何属性以获取字符串类型的值。

3.可以在接口中使用readonly定义只读属性

 readonly id: number;

请注意,只读约束是在第一次给出对象参数时存在typescript 解析xml,而不是第一次给出只读属性参数时存在

8. 数组

ts中有多种定义数组的方式

1.输入+方括号”表示链表:

let fibonacci: number[] = [1, 1, 2, 3, 5];

2、使用链表子类(Array Generic)Array来表示链表:

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

3、接口也可以用来描述链表:

nterface NumberArray {    [index: number]: number;}let fibonacci: NumberArray = [1, 1, 2, 3, 5];

4、使用any表示链表中允许任意类型:

let list: any[] = ["xcatliu", 25, { website: "http://xcatliu.com" }];

9. 功能

ts中的函数实际上是在js函数的基础上减少类型检测

我们看一下ts的一个函数定义

function sum(x: number, y: number): number {    return x + y;}

在此代码中,给定 xy 总和

分别减少类型检测,没有其他变化。

注意:TS => 中的箭头函数与 ES6 中的箭头函数不同。意思是指向

左边是输入类型,需要用括号括起来,右边是输出类型。

ts的函数参数必须和定义一致,不能多也不能少

本节参考资料:

函数类型

10. 类型确定

类型断言(Type Assertion)可以用来自动指定一个值的类型。

简单来说,后面我们使用any类型后,group值就明确了它是什么类型

主要有两种语法:

as 类型   如果是在react中使用 必须使用这个<类型>

使用:

1. 将关节类型确定为其中一种类型

2.确定一个父类为更具体的泛型类型

3.确定any类型为any

类型断言

这部分内容比较多,我会单独写一篇文章

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 typescript typescript 解析xml-TypeScript基础学习 https://www.wkzy.net/game/148915.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务