【TypeScript】知识点梳理(一)
#国庆快乐!来点干货~ #
#项目中团队总结生产问题,40%是类型相关问题,可见TS的重要性与向好趋势#
TS是JS的超集
类型
Number、String、Boolean
首字母大小写,类型有区别,譬如:
string是基元(原始类型)
let str = 'hello'
String是包装对象
let str = new String('world')
String对内存不友好,建议用string
string
number
boolean
null
undefined
bigint
symbol
object
object
存储 非原始类型
快捷记忆:以上js原始类型不可存
Object
存储 可调用Object方法的类型
快捷记忆:除null、undefined外的
any
可以赋值给任意类型,但应该避免使用,可当成一种逃生方式
let a: any
let b: string
a = false
b = a
console.log(b) // false
unknown
未知类型,但不能直接分配而破坏其他类型,可以先判断或者使用断言
// 断言
let a: unknown
a = 'hello'let b: string// 方式一
b = a as string// 方式二
b = <string>a
never
不会有值
void
空,undefined
tuple
元组,可精确描述的数组
1.数组类型
2.固定数量,?表示可选
3.每个元素类型已知
let arr1: [string, number]
let arr2: [string, number?]
let arr3: [string, ...number[]] // string后紧跟0个及以上数量的数值
enum
定义一组命名常量
数字枚举
成员值是数值,会自动递增,且可反向映射
enum Direction {Up, // 0Down,Left,Right
}// Direction[0]
// Direction.Up 更建议,清晰function walk(dir: Direction) {}walk(Direction.Up)
字符串枚举
成员值是字符串,无反向映射
enum Direction {Up: 'up',Down: 'down',Left: 'left',Right: 'right'
}// Direction.Up 只能这么写function walk(dir: Direction) {}walk(Direction.Up)
常量枚举
使用const定义,编译时内联,减少生成js代码量
const enum Direction {Up,Down,Left,Right
}
type
为任意类型创建别名
type Status = number | string;
type Gender = '男' | '女';
type Classroom = {grade: numberno: number
}
type Human = {name: stringgender: Gender
}
type Student = Human & Classroomconst stu: Student = {name: '小明',gender: '男',grade: 2,no: 3,
}
操作
1.npm i -g typescript
2.编写一个ts文件
3.tsc 文件
4.node 文件
相关文章:
【TypeScript】知识点梳理(一)
#国庆快乐!来点干货~ # #项目中团队总结生产问题,40%是类型相关问题,可见TS的重要性与向好趋势# TS是JS的超集 类型 Number、String、Boolean 首字母大小写,类型有区别,譬如: string是基元(原始…...
DMA方式在执行中断处理程序时不中断现行程序吗
DMA方式在执行中断处理程序时会中断现行程序,但DMA数据传输过程本身不中断现行程序。以下是对DMA方式及其中断处理程序的详细解释: DMA方式的基本特点 DMA(Direct Memory Access,直接存储器存取)方式是一种由硬件直接…...
Redis:string类型
Redis:string类型 string命令设置与读取SETGETMSETMGET 数字操作INCRINCRBYDECRDECRBYINCRBYFLOAT 字符串操作APPENDSTRLENGETRANGESETRANGE 内部编码intembstrraw 在Redis中,字符串string存储的是二进制,以byte为单位,输入的二进…...
【C++ STL】手撕vector,深入理解vector的底层
vector的模拟实现 前言一.默认成员函数1.1常用的构造函数1.1.1默认构造函数1.1.2 n个 val值的构造函数1.1.3 迭代器区间构造1.1.4 initializer_list 的构造 1.2析构函数1.3拷贝构造函数1.4赋值运算符重载 二.元素的插入,删除,查找操作2.1 operator[]重载函数2.2 push_back函数:…...
【Android】CarWatchDog I/O监控服务
Android Car WatchDog I/O监控服务 背景: 某基于Android 13的车载系统。 某天长时间测试一款3方(非SystemApp)时,该款应用偶发闪退现象。 通过日志分析,发现应用被系统的 Car WatchDog(喂狗服务ÿ…...
如何使用 Django 框架进行用户认证的详细指南,涵盖用户注册和登录功能的实现。
当然!下面是关于如何使用 Django 框架进行用户认证的详细指南,涵盖用户注册和登录功能的实现。 掌握 Django 用户认证的艺术 Django 是一个强大的 Python Web 框架,以其灵活性和高效性著称。无论你是新手还是经验丰富的开发者,理解和实现用户认证都是 Web 开发中的一项核心…...
C++ 语言特性21 - 别名模板
一:概述 别名模板是 C11 引入的,用于为一个模板类型定义别名,从而简化复杂的模板类型定义。它结合了 using 关键字,可以对模板类型进行重新命名,使代码更加简洁和可读。 1. 作用 定义模板类型的别名。简化复杂的模板类…...
Jenkins pipeline配置示例
前提条件:已经安装Jenkins并能正常启动 如果Jenkins安装启动遇到问题可以参考: 1.创建pipeline 点击新建项目: 输入名称,选择pipeline: 进入配置页面,如果要配置GitHub Webhook要勾选:<fo…...
Navicat for MySQL 常见问题
一、 创建连接失败问题 创建连接后,报错:1251 -Client does not support authentication protocal by server;consider upgrading MySQL client 原因:环境冲突 解决办法 : windowsR 打开 services.msc 找S开头:SQ…...
Windows:win11旗舰版连接无线显示器,连接失败
摘要:win11系统通过 miracast 无线连接到长虹电视的时候,一直连接不上。查看电脑又是支持 miracast 协议,后续发现关闭防火墙即可正常连接。 一、问题现状 最近公司里新换了电视,打算把笔记本电脑投屏到电视上。由于 HDMI 插拔不…...
Android2024.2.1升级错误
提示 Gradle 版本不兼容,升级后就报错了 。 1.gradle安装包镜像 distributionBaseGRADLE_USER_HOME distributionPathwrapper/dists //distributionUrlhttps\://services.gradle.org/distributions/gradle-8.5-bin.zip distributionUrlhttps://mirrors.cloud.tencen…...
【PHP陪玩系统源码】游戏陪玩系统app,陪玩小程序优势
陪玩系统开发运营级别陪玩成品搭建 支持二开源码交付,游戏开黑陪玩系统: 多客陪玩系统,游戏开黑陪玩,线下搭子,开黑陪玩系统 前端uniapp后端php,数据库MySQL 1、长时间的陪玩APP源码开发经验,始终坚持从客户…...
Arduino UNO R3自学笔记20 之 Arduino如何测定电机速度?
注意:学习和写作过程中,部分资料搜集于互联网,如有侵权请联系删除。 前言:在学习了Arduino的相关基础知识后,现在做个综合应用,给旋转的电机测速。 1.实验目的 测定旋转电机的转速。 2.实验器材-编码器 …...
ChatGPT全新功能Canvas上线:开启智能编程与写作新篇章
引言 随着人工智能技术的迅猛发展,OpenAI旗下的明星产品ChatGPT不断推出创新功能,以满足用户在各个领域的需求。2024年10月3日,OpenAI正式宣布了ChatGPT的全新功能——Canvas。这一功能基于先进的GPT-4o模型开发,为用户提供了一个…...
南沙C++信奥赛陈老师解一本通题 2005:【20CSPJ普及组】直播获奖
【题目描述】 NOI2130 即将举行。为了增加观赏性,CCF 决定逐一评出每个选手的成绩,并直播即时的获奖分数线。本次竞赛的获奖率为 w%w%,即当前排名前 w%w% 的选手的最低成绩就是即时的分数线。 更具体地,若当前已评出了 pp 个选手的…...
Llama 3.2 视觉能力评估
Meta 发布了 Llama 3 模型的新版本;这次,有四种模型用于不同的目的:两个多模态模型,Llama 3.2 11B 和 90B,以及两个用于边缘设备的小型语言模型,1B 和 3B。 这些是 Meta AI 的首批多模态模型,基…...
前端性能优化 面试如何完美回答
前言 性能优化是目前在面试中被问到非常多的问题,主要就是通过各种算和技术来提高页和应用的速度和用户体前端性能优化的问题并不好回答 在回答的时候干万不要掉进一个误区,认为性能优化只是几个技术点而已,事实上性能优化涉及到的是多方面的…...
程序猿成长之路之设计模式篇——设计模式简介
无论是对于代码质量还是代码可维护性、可扩展性,使用合适的设计模式都能够起到促进提升的作用,此外在软考的软件工程师、系统架构师职称考试中,设计模式也是必考的一块内容,因此我打算开拓一个新的专栏简单介绍一下设计模式&#…...
基于Node2Vec的图嵌入实现过程
目录 一、引言二、Node2Vec(原理)2.1 随机游走(Random Walk)2.2 嵌入学习2.3 Node2Vec 的优势 三、使用 Node2Vec 进行图嵌入(实践)3.1 读取和转换 JSON 文件为 Graph 对象3.2 训练 Node2Vec 模型3.3 二维嵌…...
国庆刷题(day4)
C语言: C:...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
向量几何的二元性:叉乘模长与内积投影的深层联系
在数学与物理的空间世界中,向量运算构成了理解几何结构的基石。叉乘(外积)与点积(内积)作为向量代数的两大支柱,表面上呈现出截然不同的几何意义与代数形式,却在深层次上揭示了向量间相互作用的…...
Java并发编程实战 Day 11:并发设计模式
【Java并发编程实战 Day 11】并发设计模式 开篇 这是"Java并发编程实战"系列的第11天,今天我们聚焦于并发设计模式。并发设计模式是解决多线程环境下常见问题的经典解决方案,它们不仅提供了优雅的设计思路,还能显著提升系统的性能…...
python读取SQLite表个并生成pdf文件
代码用于创建含50列的SQLite数据库并插入500行随机浮点数据,随后读取数据,通过ReportLab生成横向PDF表格,包含格式化(两位小数)及表头、网格线等美观样式。 # 导入所需库 import sqlite3 # 用于操作…...
C# WPF 左右布局实现学习笔记(1)
开发流程视频: https://www.youtube.com/watch?vCkHyDYeImjY&ab_channelC%23DesignPro Git源码: GitHub - CSharpDesignPro/Page-Navigation-using-MVVM: WPF - Page Navigation using MVVM 1. 新建工程 新建WPF应用(.NET Framework) 2.…...
在ubuntu等linux系统上申请https证书
使用 Certbot 自动申请 安装 Certbot Certbot 是 Let’s Encrypt 官方推荐的自动化工具,支持多种操作系统和服务器环境。 在 Ubuntu/Debian 上: sudo apt update sudo apt install certbot申请证书 纯手动方式(不自动配置)&…...
可视化预警系统:如何实现生产风险的实时监控?
在生产环境中,风险无处不在,而传统的监控方式往往只能事后补救,难以做到提前预警。但如今,可视化预警系统正在改变这一切!它能够实时收集和分析生产数据,通过直观的图表和警报,让管理者第一时间…...
【Axure高保真原型】图片列表添加和删除图片
今天和大家分享图片列表添加和删除图片的原型模板,效果包括: 点击图片列表的加号可以显示图片选择器,选择里面的图片; 选择图片后点击添加按钮,可以将该图片添加到图片列表; 鼠标移入图片列表的图片&…...
