首页 > 其他分享 >TS学习笔记(一)

TS学习笔记(一)

时间:2024-10-03 12:22:42浏览次数:9  
标签:return void TS 笔记 js 学习 类型 返回值

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检查不出问题,只有在运行的时候才会报错。

 

标签:return,void,TS,笔记,js,学习,类型,返回值
From: https://www.cnblogs.com/yaoyu7/p/18445579

相关文章

  • 菜鸟笔记之pwn工具篇--pwntools库的基本使用
    啥是pwntools?Pwntools是一个用于漏洞利用和二进制分析的Python库,广泛应用于安全研究、渗透测试和竞争性编程(如CTF,CaptureTheFlag)中。它为用户提供了一套强大的工具和功能,以简化与二进制文件的交互、网络通信以及各种常见任务的执行。简而言之,pwntools可以说是pwn手必备的......
  • 菜鸟笔记之pwn工具篇--Pwndbg基础使用
    什么是pwndbg?它是gdb的一个插件,增加了许多功能,来帮助pwn手可以快速寻找到所需要的信息,除了pwndbg之外还有peda、gef等工具可以用来协助进行调试。如何给pwndbg分屏?vim~/.gdbinitsetcontext-output/dev/pts/2#这里修改成2,那么就会在第二个终端显示信息pwndbg的基础操......
  • 深度学习(模型参数直方图)
        模型参数直方图可以展示模型参数在训练过程中的分布情况。通过直方图,可以了解模型的学习状态,识别过拟合或欠拟合问题,从而进行模型调优。下面以ResNet18为例,显示了不同层的参数直方图。importtorchvisionfrommatplotlibimportpyplotaspltimporttorchmod......
  • SCoRe: 通过强化学习教导大语言模型进行自我纠错
    大语言模型(LLMs)在推理任务中,如数学问题求解和编程,已经展现出了优秀的性能。尽管它们能力强大,但在实现能够通过计算和交互来改进其回答的算法方面仍然面临挑战。现有的自我纠错方法要么依赖于提示工程,要么需要使用额外的模型进行微调,但这些方法都有局限性,往往无法产生有意......
  • Zookeeper 基础学习
    Zookeeper基础学习​ Zookeeper官网:http://zookeeper.apache.org/注:以下操作在CentOS7环境操作。​ Zookeeper是Apache的一个分布式服务框架,是ApacheHadoop的一个子项目。官方文档上这么解释Zookeeper,它主要是用来解决分布式应用中经常遇到的一些数据管......
  • 《Yttomp3.click - An Outstanding YouTube to MP3 Conversion Platform》
    Intoday'sdigitalera,thedemandforobtainingandconvertingaudiocontentisgrowingincreasingly.Formanymusiclovers,videocreators,andordinaryusers,beingabletoextracttheaudiofromfavoriteYouTubevideosandconvertitintoMP3for......
  • Windows 11 24H2及LTSC版本发布:大量实用功能改进
    10月2日消息,微软已正式发布了 Windows11 2024更新(24H2),版本号26100.1742,该更新包含了许多小而实用的新增功能,改进了开始菜单、文件资源管理器、设置等。24H2版本引入了AI功能(Copilot+PC独有),包括实时字幕、画图中的Cocreator功能、WindowsStudio特效、自动超分以及图像生成和......
  • VisionTS:基于时间序列的图形构建高性能时间序列预测模型,利用图像信息进行时间序列预测
    构建预训练时间序列模型时面临的主要挑战是什么?获取高质量、多样化的时间序列数据。目前构建基础预测模型主要有两种方法:迁移学习LLM:通过针对时间序列任务定制的微调或分词策略,重新利用预训练的大型语言模型(LLM),如GPT-4或Llama。从零训练:构建大规模时间序列数据集,并从头开始预训......
  • git学习笔记 1
    1、安装配置git安装:https://git-scm.com/book/zh/v2/起步-安装-Git文档:https://git-scm.com/docs初次配置gitconfig--globaluser.name"你的名字"gitconfig--globaluser.email"你的邮箱"检测配置是否成功gitconfig--list在里面找到user.name和user.email......
  • 题解:AT_abc373_d [ABC373D] Hidden Weights
    可以发现一个性质:对于图的每个连通分量,一旦在其中任何顶点上的值固定,则所有写入的值都是确定的。我们可以逐个DFS每个连通分量,按照题目的要求给每个点赋值,初始搜索的点值设成\(0\)即可。代码:#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;intn,m;......