TS学习笔记(一)

news/2024/10/3 12:34:43

1. js的灵活性,对小项目而言非常好,但是对于大的项目而言,如果没有变量类型检查,随着变量类型的数量成倍的增加,你总有记错、遗漏的时候

2. 要解决灵活性带来的隐患,我们需要的是类型。更准确的说,是项目开发时的类型检查能力。

3. TS由三个部分组成:类型、语法与工程。

4. TS内置了一批类型工具

5、TS会在构建时被抹除类型代码与语法的降级。这一能力是通过TypeScript Complier(tsc)实现的。tsc以及tsc配置(TSConfig)是ts工程层面的重要部分。

6、null与undefined类型,在ts里面,在没有开启strictNullChecks检查时,会被视作其他类型的子类型

7、在js里面void是一个操作符,会执行后面跟着的表达式,并返回undefined。在ts的原始类型标注中也有void,这里得void用于描述一个内部没有return语句,或者没有显示return一个值的函数的返回值。

// 下面这两个的返回值类型都是void
function
func1() {} function func2() {return; }
// 下面的返回值是undefined
function func3() {return undefined; }

 

虽然func3的返回值类型会被推导为undefined,但是你仍然可以使用void类型进行标注,因为在类型层面func1、func2、func3都表示一个“没有返回一个有意义的值”

需要特别注意的是,如果变量、对象方法、函数参数是一个返回值为void类型的函数,那么并不代表不能赋值为有返回值的函数。

type voidFunc = () => void;const f:voidFunc = () => {return 123;
};

 

这里的void类型只是表示该函数的返回值没有利用价值

 

8、元组就是确定好数组类型的每一个值,并且是定长的。作用是基于位置的类型标注、避免出现越界访问。严谨性就是TS的一个特点,特别是提升数据的严谨性。

9、具名元组,神奇的玩样儿。下面这么写

const arr7: [name: string, age: number, male: boolean] = ['linbudu', 599, true];

 

10、TS的类型声明是可选的,你可以加,也可以不加。即使不加类型声明,依然是有效的TS代码,只是这时不能保证TS会正确推断出类型  

11、js的运行环境(浏览器和Node.js)不认识TS代码。TS转为JS代码的过程叫做编译(compile)。TS的类型检查只是编译时的类型检查

12、TS项目里面,有值代码和类型代码的区分。

13、变量类型一旦被设置为any,TS实际上会关闭这个变量的类型检查。用var和let声明的变量,即使不赋值,也会被推导为any类型。但是用const声明的不行,因为js规定const声明变量时,必须同时有初始值

14、any有一个污染问题。any类型赋值给其他类型的变量时,会导致出错,在运算的时候TS检查不出问题,只有在运行的时候才会报错。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/67334.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

wx推送

推送消息到wx基本代码 注意:import requests APPTOEKN = "AT_xxxxxxxxxxxxxxxxxxxxxxxxxx" UIDS = ["UID_xxxxxxxxxxxxxxxxxxxxx",]def send_message(msg,summary="test"):"""微信公众号推送发送消息:param msg: 要发送的内容:pa…

修改el-menu 样式

el-menu-item 修改el-menu项的高度 el-sub-menu 修改el-menu的下拉高度

矿山电子封条智能监管系统

矿山电子封条智能监管系统通过YOLOv7网络模型技术,矿山电子封条智能监管系统在通过在煤矿关键地点已经安装的摄像机,对矿井人数变化、生产作业状态、出入井人员等情况实时监测分析,发现煤矿人员作业及状态异常动态及时告警,自动将报警信息推送给后台系统,对矿山场景下人员…

高级语言程序设计第2次作业

打这个时忘了打return 0;运算时把/打成了打这个时没碰到问题因为忘了上下限是啥,所以随便打了一个比较大的数字p notation 不会打电脑警告是看了书才知道是\a无 一开始把浮点数换成了整数回答书上的问题: 系统处理整数上溢时,会从头再进行运算;若为浮点数上溢,则会进行中…

SCoRe: 通过强化学习教导大语言模型进行自我纠错

大语言模型(LLMs)在推理任务中,如数学问题求解和编程,已经展现出了优秀的性能。尽管它们能力强大,但在实现能够通过计算和交互来改进其回答的算法方面仍然面临挑战。现有的自我纠错方法要么依赖于提示工程,要么需要使用额外的模型进行微调,但这些方法都有局限性,往往无法产生有…

黑神话像素版(怀旧服)

包含电脑端(是个电脑就能玩,不需要配置),手机端(是个手机就能玩),此版本为黑神话像素版本,真正的免费游戏。包含电脑端(是个电脑就能玩,不需要配置),手机端(是个手机就能玩),此版本为黑神话像素版本,真正的免费游戏。 免费下载地址:https://pan.quark.cn/s/b4…

o1 式开源推理链项目 g1:可基于 Llama 3.2-90b 模型

g1 简介g1 是一个开源项目,利用 Llama 3.1 70b 模型在 Groq 硬件上实现类似 OpenAI o1 的推理链能力。项目通过精心设计的提示策略引导语言模型进行逐步推理,解决了传统语言模型在逻辑推理方面的不足。 工作原理利用动态推理链,逐步引导 Llama 3.1 模型完成复杂逻辑问题 模型…

Xcode11上新创建项目build fail

在mac上新装Xcode11,新创建了一个工程,点击运行一直build fail,并且没有显示报错。 点击xcode左侧边栏最右边的Show the Report navigator,显示报表导航器,如下图报错信息为Showing Recent Issues Couldnt create workspace arena folder /Users/hyt/Library/Developer/Xc…