自己做的工艺品在哪个网站上可以卖/佛山seo优化
-
一、总体概述
- TypeScript 是 JavaScript 的超集,主要通过静态类型检查和丰富的类型系统来提高代码的健壮性和可维护性。
- 它涵盖了从基础数据类型到高级类型、从函数与对象的类型定义到类、接口、泛型、模块化及装饰器等众多知识点。
- 掌握这些内容有助于编写更清晰、结构更合理、错误更少的代码。
-
二、详细知识点总结
-
(一)基础数据类型
- (1) 原始类型
- 包括 number、string、boolean、null、undefined、symbol、bigint。
- (2) 对象类型
- 对象、数组、元组、函数等都是引用类型。
- (1) 原始类型
-
(二)函数与作用域
- (1) 函数定义
- 可使用函数声明、函数表达式或箭头函数。
- 支持可选参数、默认参数以及剩余参数。
- (2) 返回值类型
- 可通过 void 标注无返回值函数,使用 never 表示永远不会返回(如抛异常或无限循环)。
- (1) 函数定义
-
(三)接口 (interface)
- (1) 对象类型定义
- 用于声明对象属性及其类型,提升代码重用性和可读性。
- (2) 函数与数组类型控制
- 可约束函数的参数和返回值,也可用于定义数组索引类型。
- (3) 属性修饰
- 支持可选属性(?)和只读属性(readonly)。
- (4) 继承
- 通过 extends 实现单继承或多继承,扩展已有接口。
- (1) 对象类型定义
-
(四)类 (Class)
- (1) 基本概念
- 包括构造函数、实例属性与方法。
- (2) 访问修饰符
- public(公有)、private(私有)、protected(受保护),控制成员的可见性。
- (3) 静态成员与抽象类
- 静态属性与方法属于类本身,抽象类用于定义抽象方法供子类实现。
- (1) 基本概念
-
(五)泛型 (Generics)
- (1) 泛型函数
- 使函数参数和返回值具有灵活的类型。
- (2) 泛型接口与类
- 用于在接口或类中引入类型参数,增强复用性。
- (3) 泛型约束
- 限制泛型类型必须满足某些条件(如具有某些属性)。
- (1) 泛型函数
-
(六)枚举 (Enums)
- (1) 数字枚举
- 默认从 0 开始,每个枚举成员自动递增,可进行反向映射。
- (2) 字符串枚举
- 枚举成员为字符串常量,具有更好的语义。
- (1) 数字枚举
-
(七)高级类型
- (1) 联合类型与交叉类型
- 联合类型使用 “|” 限制变量取值为多个类型中的一种;交叉类型 “&” 则用于组合多个类型的特性。
- (2) 字面量类型
- 限制变量只能取具体的字面量值,常与联合类型一起使用。
- (3) 类型别名 (type alias)
- 用于给复杂类型或联合类型取别名,便于复用和维护。
- (4) interface 与 type 的区别
- 接口侧重于描述对象结构,支持声明合并;类型别名适用于任何类型,但不支持合并。
- (1) 联合类型与交叉类型
-
(八)类型推断与类型兼容
- (1) 类型推断
- 编译器根据变量赋值自动推断类型,简化代码书写。
- (2) 类型兼容性
- 不同类型之间的兼容判断,决定了赋值、参数传递时的类型匹配。
- (1) 类型推断
-
(九)类型保护
- (1) 内置类型保护
- 使用 typeof、instanceof、in 等操作符判断类型。
- (2) 用户自定义类型保护
- 利用返回类型为 x is T 的函数,实现自定义的类型保护逻辑。
- (1) 内置类型保护
-
(十)装饰器 (Decorators)
- (1) 装饰器概念
- 通过 @ 符号为类、方法、属性、参数添加元数据或行为,常用于框架中。
- (2) 使用条件
- 需要开启 experimentalDecorators 编译选项。
- (1) 装饰器概念
-
(十一)模块系统与命名空间
- (1) 模块化
- 支持 ES6 模块(import/export)和 CommonJS 模块,实现代码分离。
- (2) 命名空间
- 用于组织代码内部模块,避免全局污染。
- (1) 模块化
-
(十二)工具类型
- (1) 常见工具类型包括:
- Partial:将所有属性设为可选。
- Readonly:将所有属性设为只读。
- Record:构造键值对类型。
- Pick 与 Omit:从类型中挑选或剔除某些属性。
- 其他如 Exclude、Extract、NonNullable、ReturnType、InstanceType 等。
- (1) 常见工具类型包括:
-
(十三)其他关键概念
- (1) any 与 unknown
- any 类型允许任意赋值,缺乏类型保护;unknown 类型更安全,需经过类型断言或检查后才能使用。
- (2) 类型断言
- 使用 as 或尖括号语法,将一个值指定为某一具体类型,提升类型判断准确性。
- (1) any 与 unknown
-
-
三、总体回顾
- TypeScript 的核心在于利用静态类型系统提前捕获错误,通过丰富的类型系统(包括基础类型、高级类型、接口、类、泛型等)以及工具类型来构造灵活且健壮的代码结构。
- 掌握这些知识点不仅可以提高代码质量,还能在大型项目中更好地管理和维护代码。
- 通过不断实践和总结,理解每个知识点的用途和最佳实践,将有助于编写出既安全又高效的 TypeScript 应用。
相关文章:

【前端】【Ts】【知识点总结】TypeScript知识总结
一、总体概述 TypeScript 是 JavaScript 的超集,主要通过静态类型检查和丰富的类型系统来提高代码的健壮性和可维护性。它涵盖了从基础数据类型到高级类型、从函数与对象的类型定义到类、接口、泛型、模块化及装饰器等众多知识点。掌握这些内容有助于编写更清晰、结…...

JAVA架构师进阶之路
JAVA架构师进阶之路 前言 苦于网络上充斥的各种java知识,多半是互相抄袭,导致很多后来者在学习java知识中味同嚼蜡,本人闲暇之余整理了进阶成为java架构师所必须掌握的核心知识点,后续会不断扩充。 废话少说,直接上正…...

掌握@PostConstruct与@PreDestroy,优化Spring Bean的初始化和销毁
在Spring中,PostConstruct和PreDestroy注解就像是对象的“入职”和“离职”仪式。 1. PostConstruct注解:这个注解标记的方法就像是员工入职后的“岗前培训”。当一个对象(比如一个Bean)被Spring容器创建并注入依赖后,…...

Java设计模式:行为型模式→状态模式
Java 状态模式详解 1. 定义 状态模式(State Pattern)是一种行为型设计模式,它允许对象在内部状态改变时改变其行为。状态模式通过将状态需要的行为封装在不同的状态类中,实现对象行为的动态改变。该模式的核心思想是分离不同状态…...

景联文科技:专业数据采集标注公司 ,助力企业提升算法精度!
随着人工智能技术加速落地,高质量数据已成为驱动AI模型训练与优化的核心资源。据统计,全球AI数据服务市场规模预计2025年突破200亿美元,其中智能家居、智慧交通、医疗健康等数据需求占比超60%。作为国内领先的AI数据服务商,景联文…...

ES面试题
1、Elasticsearch的基本构成: (1)index 索引: 索引类似于mysql 中的数据库,Elasticesearch 中的索引是存在数据的地方,包含了一堆有相似结构的文档数据。 (2)type 类型:…...

LabVIEW2025中文版软件安装包、工具包、安装教程下载
下载链接:LabVIEW及工具包大全-三易电子工作室http://blog.eeecontrol.com/labview6666 《LabVIEW2025安装图文教程》 1、解压后,双击install.exe安装 2、选中“我接受上述2条许可协议”,点击下一步 3、点击下一步,安装NI Packa…...

算法与数据结构(合并K个升序链表)
思路 有了合并两个链表的基础后,这个的一种方法就是可以进行顺序合并,我们可以先写一个函数用来合并两个链表,再在合并K个链表的的函数中循环调用它。 解题过程 解析这个函数 首先,可以先判断,如果a为空,…...

洛谷 P4552 [Poetize6] IncDec Sequence C语言
P4552 [Poetize6] IncDec Sequence - 洛谷 | 计算机科学教育新生态 题目描述 给定一个长度为 n 的数列 a1,a2,…,an,每次可以选择一个区间 [l,r],使这个区间内的数都加 1 或者都减 1。 请问至少需要多少次操作才能使数列中的所有数都一样&#…...

保姆级教程Docker部署Zookeeper官方镜像
目录 1、安装Docker及可视化工具 2、创建挂载目录 3、运行Zookeeper容器 4、Compose运行Zookeeper容器 5、查看Zookeeper运行状态 6、验证Zookeeper是否正常运行 1、安装Docker及可视化工具 Docker及可视化工具的安装可参考:Ubuntu上安装 Docker及可视化管理…...

javaEE-6.网络原理-http
目录 什么是http? http的工作原理: 抓包工具 fiddler的使用 HTTP请求数据: 1.首行:编辑 2.请求头(header) 3.空行: 4.正文(body) HTTP响应数据 1.首行:编辑 2.响应头 3.空行: 4.响应正文…...

【戒抖音系列】短视频戒除-1-对推荐算法进行干扰
如今推荐算法已经渗透到人们生活的方方面面,尤其是抖音等短视频核心就是推荐算法。 【短视频的危害】 1> 会让人变笨,慢慢让人丧失注意力与专注力 2> 让人丧失阅读长文的能力 3> 让人沉浸在一个又一个快感与嗨点当中。当我们刷短视频时&#x…...

9.建造者模式 (Builder Pattern)
定义 建造者模式(Builder Pattern)是一种创建型设计模式,旨在将复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示。该模式的核心思想是通过一步步地构建一个复杂的对象,每个步骤独立且可扩展&…...

OpenCV:特征检测总结
目录 一、什么是特征检测? 二、OpenCV 中的常见特征检测方法 1. Harris 角点检测 2. Shi-Tomasi 角点检测 3. Canny 边缘检测 4. SIFT(尺度不变特征变换) 5. ORB 三、特征检测的应用场景 1. 图像匹配 2. 运动检测 3. 自动驾驶 4.…...

Clion开发STM32时使用stlink下载程序与Debug调试
一、下载程序 先创建一个文件夹: 命名:stlink.cfg 写入以下代码: # choose st-link/j-link/dap-link etc. #adapter driver cmsis-dap #transport select swdsource [find interface/stlink.cfg]transport select hla_swdsource [find target/stm32f4x.…...

电脑开机键一闪一闪打不开
家人们谁懂啊!本来打算愉快地开启游戏时光,或者高效处理工作任务,结果按下电脑开机键后,它就只是一闪一闪的,怎么都打不开。相信不少朋友都遭遇过这种令人崩溃的场景,满心的期待瞬间化为焦急与无奈。电脑在…...

深度学习 Pytorch 基础网络手动搭建与快速实现
为了方便后续练习的展开,我们尝试自己创建一个数据生成器,用于自主生成一些符合某些条件、具备某些特性的数据集。 导入相关的包 # 随机模块 import random# 绘图模块 import matplotlib as mpl import matplotlib.pyplot as plt# 导入numpy import nu…...

Sqli-labs靶场实录(一):Basic Challenges
sqli-labs靶场实录:Basic Challenges sql手注基本流程Less-11.1探测注入点1.2判断字段数1.3判断回显位1.4提取数据库基本信息1.5拖取敏感数据 Less-2Less-3Less-4Less5爆表爆列名 Less6爆库爆表爆列名 Less7猜解数据库长度逐字符爆破数据库名 Less8爆库 Less9爆库 Less10Less11…...

2024最新版Node.js详细安装教程(含npm配置淘宝最新镜像地址)
一:Node.js安装 浏览器中搜索Nodejs,或直接用网址:Node.js — 在任何地方运行 JavaScript 建议此处下载长期支持版本(红框内): 开始下载,完成后打开文件: 进入安装界面,在此处勾选,再点击n…...

RK3568使用QT搭建TCP服务器和客户端
文章目录 一、让RK3568开发板先连接上wifi二、客户端代码1. `widget.h` 文件2. `widget.cpp` 文件**详细讲解**1. **`Widget` 类构造函数 (`Widget::Widget`)**2. **UI 布局 (`setupUI`)**3. **连接按钮的槽函数 (`onConnectClicked`)**4. **发送消息按钮的槽函数 (`onSendMess…...

Android学习20 -- 手搓App2(Gradle)
1 前言 昨天写了一个完全手搓的:Android学习19 -- 手搓App-CSDN博客 后面谷歌说不要用aapt,d8这些来搞。其实不想弄Gradle的,不过想着既然开始了,就多看一些。之前写过一篇Gradle,不过是最简单的编译,不涉…...

LeetCode - Google 大模型10题 第2天 Position Embedding(位置编码) 3题
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/145454489 在 Transformer 架构中,位置编码(Position Embedding) 是辅助模型理解序列中元素顺序的关键机制。绝对位置编码(Absolute P…...

PostgreSQL 数据库备份与还原
为了安全与数据共享等,创建好的数据库有时候需要备份操作和还原操作。数据库的备份与还原主要是三个命令:pg_dump、pg_dumpall 和 pg_restore 。 其中pg_dump用于备份单个数据库,它支持多种备份格式(SQL、自定义等)&a…...

proxmox通过更多的方式创建虚拟机
概述 作为一名资深运维工程师,我们经常需要在 Proxmox 虚拟化平台上创建和管理虚拟机。本文将介绍三种不同的方式在 Proxmox 上创建 Ubuntu 虚拟机: 通过 Proxmox 命令创建虚拟机通过 Shell 脚本自动化创建虚拟机使用 Proxmox API 创建虚拟机 每种方式…...

WordPress使用(2)
上一篇文章讲述了WordPress的基本安装,主要是docker方式的处理。本文章主要介绍WordPress安装后的其他设置。 1. 安装后设置 安装后碰到的第一个需求就是安装一个合适的主题,但WordPress默认的上传文件大小是2M,远远无法满足要求࿰…...

git中文件的状态状态切换
文件的状态分类 Git 中文件的状态主要分为以下几种: Untracked(未跟踪) 定义:这些文件从未被 Git 跟踪过,通常是因为它们是新创建的文件,或者被 .gitignore 排除在外。 示例:新创建的文件 new…...

解决php8.3无法加载curl扩展
把它的值更改为扩展存在的目录的绝对路径(扩展存在的目录为有php_xxx.dll存在的目录) extension_dir "e:\serv\php83\ext" 然后从php根目录复制 libssh2.dll 和 libcrypto-*.dll 和 libssl-*.dll 到Apache根目录下的bin目录 重启apache服务即可...

三路排序算法
三路排序算法 引言 排序算法是计算机科学中基础且重要的算法之一。在数据分析和处理中,排序算法的效率直接影响着程序的执行速度和系统的稳定性。本文将深入探讨三路排序算法,包括其原理、实现和应用场景。 一、三路排序算法的原理 三路排序算法是一…...

入行FPGA设计工程师需要提前学习哪些内容?
FPGA作为一种灵活可编程的硬件平台,广泛应用于嵌入式系统、通信、数据处理等领域。很多人选择转行FPGA设计工程师,但对于新手来说,可能在学习过程中会遇到一些迷茫和困惑。为了帮助大家更好地准备,本文将详细介绍入行FPGA设计工程…...

DBASE DBF数据库文件解析
基于Java实现DBase DBF文件的解析和显示 JDK19编译运行,实现了数据库字段和数据解析显示。 首先解析数据库文件头代码 byte bytes[] Files.readAllBytes(Paths.get(file));BinaryBufferArray bis new BinaryBufferArray(bytes);DBF dbf new DBF();dbf.VersionN…...