当前位置: 首页 > news >正文

【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】知识点梳理(一)

#国庆快乐&#xff01;来点干货~ # #项目中团队总结生产问题&#xff0c;40%是类型相关问题&#xff0c;可见TS的重要性与向好趋势# TS是JS的超集 类型 Number、String、Boolean 首字母大小写&#xff0c;类型有区别&#xff0c;譬如&#xff1a; string是基元&#xff08;原始…...

DMA方式在执行中断处理程序时不中断现行程序吗

DMA方式在执行中断处理程序时会中断现行程序&#xff0c;但DMA数据传输过程本身不中断现行程序。以下是对DMA方式及其中断处理程序的详细解释&#xff1a; DMA方式的基本特点 DMA&#xff08;Direct Memory Access&#xff0c;直接存储器存取&#xff09;方式是一种由硬件直接…...

Redis:string类型

Redis&#xff1a;string类型 string命令设置与读取SETGETMSETMGET 数字操作INCRINCRBYDECRDECRBYINCRBYFLOAT 字符串操作APPENDSTRLENGETRANGESETRANGE 内部编码intembstrraw 在Redis中&#xff0c;字符串string存储的是二进制&#xff0c;以byte为单位&#xff0c;输入的二进…...

【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监控服务 背景&#xff1a; 某基于Android 13的车载系统。 某天长时间测试一款3方&#xff08;非SystemApp&#xff09;时&#xff0c;该款应用偶发闪退现象。 通过日志分析&#xff0c;发现应用被系统的 Car WatchDog&#xff08;喂狗服务&#xff…...

如何使用 Django 框架进行用户认证的详细指南,涵盖用户注册和登录功能的实现。

当然!下面是关于如何使用 Django 框架进行用户认证的详细指南,涵盖用户注册和登录功能的实现。 掌握 Django 用户认证的艺术 Django 是一个强大的 Python Web 框架,以其灵活性和高效性著称。无论你是新手还是经验丰富的开发者,理解和实现用户认证都是 Web 开发中的一项核心…...

C++ 语言特性21 - 别名模板

一&#xff1a;概述 别名模板是 C11 引入的&#xff0c;用于为一个模板类型定义别名&#xff0c;从而简化复杂的模板类型定义。它结合了 using 关键字&#xff0c;可以对模板类型进行重新命名&#xff0c;使代码更加简洁和可读。 1. 作用 定义模板类型的别名。简化复杂的模板类…...

Jenkins pipeline配置示例

前提条件&#xff1a;已经安装Jenkins并能正常启动 如果Jenkins安装启动遇到问题可以参考&#xff1a; 1.创建pipeline 点击新建项目&#xff1a; 输入名称&#xff0c;选择pipeline&#xff1a; 进入配置页面&#xff0c;如果要配置GitHub Webhook要勾选&#xff1a;<fo…...

Navicat for MySQL 常见问题

一、 创建连接失败问题 创建连接后&#xff0c;报错&#xff1a;1251 -Client does not support authentication protocal by server;consider upgrading MySQL client 原因&#xff1a;环境冲突 解决办法 &#xff1a; windowsR 打开 services.msc 找S开头&#xff1a;SQ…...

Windows:win11旗舰版连接无线显示器,连接失败

摘要&#xff1a;win11系统通过 miracast 无线连接到长虹电视的时候&#xff0c;一直连接不上。查看电脑又是支持 miracast 协议&#xff0c;后续发现关闭防火墙即可正常连接。 一、问题现状 最近公司里新换了电视&#xff0c;打算把笔记本电脑投屏到电视上。由于 HDMI 插拔不…...

Android2024.2.1升级错误

提示 Gradle 版本不兼容&#xff0c;升级后就报错了 。 1.gradle安装包镜像 distributionBaseGRADLE_USER_HOME distributionPathwrapper/dists //distributionUrlhttps\://services.gradle.org/distributions/gradle-8.5-bin.zip distributionUrlhttps://mirrors.cloud.tencen…...

【PHP陪玩系统源码】游戏陪玩系统app,陪玩小程序优势

陪玩系统开发运营级别陪玩成品搭建 支持二开源码交付&#xff0c;游戏开黑陪玩系统: 多客陪玩系统&#xff0c;游戏开黑陪玩&#xff0c;线下搭子&#xff0c;开黑陪玩系统 前端uniapp后端php&#xff0c;数据库MySQL 1、长时间的陪玩APP源码开发经验&#xff0c;始终坚持从客户…...

Arduino UNO R3自学笔记20 之 Arduino如何测定电机速度?

注意&#xff1a;学习和写作过程中&#xff0c;部分资料搜集于互联网&#xff0c;如有侵权请联系删除。 前言&#xff1a;在学习了Arduino的相关基础知识后&#xff0c;现在做个综合应用&#xff0c;给旋转的电机测速。 1.实验目的 测定旋转电机的转速。 2.实验器材-编码器 …...

ChatGPT全新功能Canvas上线:开启智能编程与写作新篇章

引言 随着人工智能技术的迅猛发展&#xff0c;OpenAI旗下的明星产品ChatGPT不断推出创新功能&#xff0c;以满足用户在各个领域的需求。2024年10月3日&#xff0c;OpenAI正式宣布了ChatGPT的全新功能——Canvas。这一功能基于先进的GPT-4o模型开发&#xff0c;为用户提供了一个…...

南沙C++信奥赛陈老师解一本通题 2005:【20CSPJ普及组】直播获奖

【题目描述】 NOI2130 即将举行。为了增加观赏性&#xff0c;CCF 决定逐一评出每个选手的成绩&#xff0c;并直播即时的获奖分数线。本次竞赛的获奖率为 w%w%&#xff0c;即当前排名前 w%w% 的选手的最低成绩就是即时的分数线。 更具体地&#xff0c;若当前已评出了 pp 个选手的…...

Llama 3.2 视觉能力评估

Meta 发布了 Llama 3 模型的新版本&#xff1b;这次&#xff0c;有四种模型用于不同的目的&#xff1a;两个多模态模型&#xff0c;Llama 3.2 11B 和 90B&#xff0c;以及两个用于边缘设备的小型语言模型&#xff0c;1B 和 3B。 这些是 Meta AI 的首批多模态模型&#xff0c;基…...

前端性能优化 面试如何完美回答

前言 性能优化是目前在面试中被问到非常多的问题&#xff0c;主要就是通过各种算和技术来提高页和应用的速度和用户体前端性能优化的问题并不好回答 在回答的时候干万不要掉进一个误区&#xff0c;认为性能优化只是几个技术点而已&#xff0c;事实上性能优化涉及到的是多方面的…...

程序猿成长之路之设计模式篇——设计模式简介

无论是对于代码质量还是代码可维护性、可扩展性&#xff0c;使用合适的设计模式都能够起到促进提升的作用&#xff0c;此外在软考的软件工程师、系统架构师职称考试中&#xff0c;设计模式也是必考的一块内容&#xff0c;因此我打算开拓一个新的专栏简单介绍一下设计模式&#…...

基于Node2Vec的图嵌入实现过程

目录 一、引言二、Node2Vec&#xff08;原理&#xff09;2.1 随机游走&#xff08;Random Walk&#xff09;2.2 嵌入学习2.3 Node2Vec 的优势 三、使用 Node2Vec 进行图嵌入&#xff08;实践&#xff09;3.1 读取和转换 JSON 文件为 Graph 对象3.2 训练 Node2Vec 模型3.3 二维嵌…...

国庆刷题(day4)

C语言&#xff1a; C&#xff1a;...

OpenClaw+SecGPT-14B联动方案:3类网络安全自动化场景实测

OpenClawSecGPT-14B联动方案&#xff1a;3类网络安全自动化场景实测 1. 为什么选择这个技术组合&#xff1f; 去年我在做安全研究时&#xff0c;经常需要重复处理三类任务&#xff1a;分析漏洞报告、检查日志异常、收集威胁情报。这些工作既需要专业判断&#xff0c;又包含大…...

3D元器件库在PCB设计中的关键作用与应用

1. 为什么你需要一套完整的3D元器件库作为一名电子工程师&#xff0c;我深知在PCB设计过程中&#xff0c;3D元器件库的重要性。传统的2D设计虽然能满足基本需求&#xff0c;但在实际生产装配时往往会遇到各种意想不到的机械干涉问题。记得我刚开始做硬件设计时&#xff0c;就曾…...

VBA数据库解决方案第二十九讲 如何批量修改数据库中的数据

《VBA数据库解决方案》教程&#xff08;版权10090845&#xff09;是我推出的第二套教程&#xff0c;目前已经是第二版修订了。这套教程定位于中级&#xff0c;是学完字典后的另一个专题讲解。数据库是数据处理的利器&#xff0c;教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法…...

StreamlabsArduinoAlerts:嵌入式设备接入Twitch直播事件

1. StreamlabsArduinoAlerts 库深度解析&#xff1a;嵌入式设备接入 Twitch 直播事件的完整实现方案 StreamlabsArduinoAlerts 是一个专为资源受限嵌入式平台设计的轻量级 C 库&#xff0c;其核心目标是让 Arduino、ESP8266、ESP32、Particle 及基于 ATmega/STM32 的 MCU 能够直…...

如何突破Office功能限制?本地化激活方案全解析

如何突破Office功能限制&#xff1f;本地化激活方案全解析 【免费下载链接】ohook An universal Office "activation" hook with main focus of enabling full functionality of subscription editions 项目地址: https://gitcode.com/gh_mirrors/oh/ohook 当…...

5步搞定Qwen3-Embedding-4B向量服务:SGlang部署亲测有效

5步搞定Qwen3-Embedding-4B向量服务&#xff1a;SGlang部署亲测有效 1. Qwen3-Embedding-4B模型简介 1.1 模型核心能力 Qwen3-Embedding-4B是通义实验室推出的新一代文本嵌入模型&#xff0c;专为高效语义编码设计。作为Qwen3系列的一员&#xff0c;它在保持中等参数规模&am…...

PyTorch 2.8镜像实战落地:教育机构AI教学平台(图文+视频+LLM)集成方案

PyTorch 2.8镜像实战落地&#xff1a;教育机构AI教学平台&#xff08;图文视频LLM&#xff09;集成方案 1. 教育AI平台的技术挑战与解决方案 现代教育机构在构建AI教学平台时面临三大技术难题&#xff1a;多模态内容生成、算力资源管理和教学场景适配。PyTorch 2.8深度学习镜…...

dig (Domain Information Groper):从命令行到自动化运维的DNS探秘

1. 从命令行工具到运维利器的dig进化史 第一次接触dig命令时&#xff0c;我正被一个诡异的域名解析问题困扰。当时作为新手运维&#xff0c;只会用ping和nslookup反复测试&#xff0c;直到同事甩给我一行dig trace example.com——瞬间看到了完整的DNS解析链条&#xff0c;那种…...

3步打造自平衡机器人:零基础实战DIY攻略

3步打造自平衡机器人&#xff1a;零基础实战DIY攻略 【免费下载链接】Cubli_Mini 项目地址: https://gitcode.com/gh_mirrors/cu/Cubli_Mini 自平衡机器人作为 robotics 领域的经典项目&#xff0c;一直是爱好者入门的理想选择。Cubli_Mini 作为开源项目中的佼佼者&…...

告别GDAL依赖!用Rasterio和TensorFlow 2.6搞定BigEarthNet-MM数据集划分与TFRecord转换

告别GDAL依赖&#xff01;用Rasterio和TensorFlow 2.6搞定BigEarthNet-MM数据集划分与TFRecord转换 在遥感图像处理领域&#xff0c;BigEarthNet-MM数据集因其多模态特性&#xff08;Sentinel-1 SAR和Sentinel-2 MSI数据&#xff09;成为研究热点。但许多开发者在处理该数据集时…...