typescript学习(更新中)
目录
- 开发环境搭建
- 类型如何声明
- 有哪些类型
- 编译配置文件
开发环境搭建
npm i -g typescript
tsc检查是否安装成功
类型如何声明
// 先声明再赋值
let a: number
a = 1// 直接赋值
let b = 1
function sum(a: number, b: number): number {return a + b
}
console.log(sum(1, 2))
有哪些类型

// 可以使用|连接多个类型
let a: number | string// unknown类型的变量,不能直接赋值给其他变量
let b: unknown
// a = b // 不可
// 可以下面这样写
a = b as number
a = <number>b// void用来表示空,以函数为例,就表示没有返回值的函数
function fn(): void {}// never 表示永远不会返回结果
function fn2(): never {throw new Error('报错了!')
}// object {属性名: 属性值, 属性名:属性值}
// 在属性名后边加上?,表示属性可选的
let c: { name: string, age?: number }
c = { name: 'nihao', age: 18 }
c = { name: 'ni' }
// [propName: string]: any 表示任意类型的属性
let d: { name: string, [propName: string]: any}// 设置函数结构的类型声明
let e: (a: number, b: number) => number
e = (n, m) => {return n + m
}// 数组 类型[] Array<类型>
let f: string[]
let g: Array<string>// 枚举
enum Gender{Male = 0,Female = 1
}
let h: { gender: Gender }// &
let i: { name: string } & { age: number }
i = { name: 'aa', age: 18 }// 类型别名
type myType = 1 | 2 | 3
let j: myType
let k: myType
编译配置文件
创建一个tsconfig.json
{/*tsconfig.json 是ts编译器的配置文件,ts编译器可以根据她的信息来对代码进行编译"include": [""],用来指定哪些ts文件需要被编译,一个/*表示任意文件,两个/**表示任意文件目录"exclude": 不需要被编译的目录,默认["node_modules","bower_components","jspm_packages"]"extends":"目录地址", 继承配置文件,可以把两个配置文件合并"files":[xxx.ts,xxx.ts]指定被编译的文件列表compilerOptions{} 编译器配置target: 用来指定ts 编译后的Es版本,默认ES3,,可选值es3,es5,es6,es2015,es2016,es2017,es2018,es2019,es2020,esnextlib[] 用来指定项目中要使用的库,一般不动他module: 指定要使用的模块化规范,可选值:none commonjs amd system umd es6 es2015 es2020 exnestoutDir: 用来指定版以后文件所在的目录outFile: 将代码合并成一个文件,设置outFile 后 所有的全局作用域中的代码会合并到同一个文件中。allowJs: 是否对js文件进行编译,默认falsecheckJs: 是否检查js文件语法removeComments: 编译时是否去除注释noEmit: 不生成编译后的文件noEmitOnError: 当有错误时不生成编译文件// 语法检查的属性alwaysStrict: 严格模式,用来设置编译后的文件是否使用严格模式,默认falsenoImplicitAny: 不允许使用隐式anynoImplicitThis: 不允许使用不明确类型thisstrictNullChecks: 严格的检查空值,strict: 所有严格模式的总开关,这个属性一定要写在最上面*/"exclude": ["node_modules"],"include": ["./src/**/*"]"compilerOptions": {"module": "commonjs","target": "ES5","sourceMap": true,"outDir": "./dist",// "outFile": "./dist/app.js""allowJs": false,"checkJs": false,"removeComments": false,"noEmit": false,"noEmitOnError": false,"strict": false,"alwaysStrict": false,"noImplicitAny": false,"noImplicitThis": false,"strictNullChecks": false}
}
相关文章:
typescript学习(更新中)
目录 开发环境搭建类型如何声明有哪些类型编译配置文件 开发环境搭建 npm i -g typescripttsc检查是否安装成功 类型如何声明 // 先声明再赋值 let a: number a 1// 直接赋值 let b 1function sum(a: number, b: number): number {return a b } console.log(sum(1, 2))有…...
T2 小美的平衡矩阵(25分) - 美团编程题 题解
考试平台: 牛客网 题目类型: 30道单选题(60分) 2 道编程题 (15分 25分) 考试时间: 2024-03-09 (两小时) 题目描述 小美拿到了一个n*n的矩阵,其中每个元素是…...
13:大数据与Hadoop|分布式文件系统|分布式Hadoop集群
大数据与Hadoop|分布式文件系统|分布式Hadoop集群 Hadoop部署Hadoop HDFS分布式文件系统HDFS部署步骤一:环境准备HDFS配置文件 查官方手册配置Hadoop集群 日志与排错 mapreduce 分布式离线计算框架YARN集群资源管理系统步骤一:安装…...
前端知识点、技巧、webpack、性能优化(持续更新~)
1、 请求太多 页面加载慢 (webpack性能优化) 可以把 图片转换成 base64 放在src里面 减少服务器请求 但是图片会稍微大一点点 以上的方法不需要一个一个自己转化 可以在webpack 进行 性能优化 (官网有详细描述)...
红队专题-开源漏扫-巡风xunfeng源码剖析与应用
开源漏扫-巡风xunfeng 介绍主体两部分:网络资产识别引擎,漏洞检测引擎。代码赏析插件编写JSON标示符Python脚本此外系统内嵌了辅助验证功能文件结构功能 模块添加IP三. 进行扫描在这里插入图片描述 
gateway统计接口调用耗时情况设计思路(大厂面试题) 详情视频可以去看尚硅谷2024周阳老师的springCloud P86 知识出处自定义全局过滤器官网https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gateway-combined-global-filter-…...
Elasticsearch:什么是 DevOps?
DevOps 定义 DevOps 是一种现代软件开发方法,它将公司软件开发 (Dev) 和 IT 运营 (Ops) 团队的工作结合起来并实现自动化。 DevOps 提倡这样一种理念:这些传统上独立的团队在协作方面比在孤岛中更有效。 理想情况下,DevOps 团队共同努力改进…...
C语言基础练习——Day03
目录 选择题 编程题 记负均正 旋转数组的最小数字 选择题 1、已知函数的原型是:int fun(char b[10], int *a);,设定义:char c[10];int d;,正确的调用语句是 A fun(c,&d);B fun(c,d);C fun(&c,&d);D fun(&c,d); 答…...
膜厚测量仪在半导体应用中及其重要
随着科技的不断发展,半导体行业已成为当今世界的核心产业之一。在这个领域中,半导体膜厚测量仪作为关键设备,其精度和可靠性对于产品质量和生产效率具有至关重要的作用。本文将详细介绍半导体膜厚测量仪的工作原理、应用领域以及其在半导体制…...
【前端】-初始前端以及html的学习
💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C 动态规划算法🎄 如 果 你 …...
uni-app navigateTo路由传参传递对象
传递参数 先通过JSON.stringify将对象转成字符串 toNextPage(obj) {uni.navigateTo({url:/pages/nextpage/index?obj${JSON.stringify(obj)}}); },接收参数 再通过JSON.parse将传递过来的字符串转成对象 onLoad(options) {this.obj JSON.parse(options.obj) }...
99 centos 7 服务器上面 增加了 2181 的防火墙配置, 但是客户端连接不上
呵呵 最近部署 zookeeper 的时候出现这样的一个问题 centos 7 服务器上面 增加了 2181 的防火墙配置, 但是客户端连接不上 # 但是再 另外的一个虚拟机环境, ubuntu 16 的环境, docker 启动 2181 的服务, 然后 安装 firewalld, 配置 开放 2181 的 tcp 服务, 客户端能够正常连接…...
云计算科学与工程实践指南--章节引言收集
云计算科学与工程实践指南–章节引言收集 //本文收集 【云计算科学与工程实践指南】 书中每一章节的引言。 我已厌倦了在一本书中阅读云的定义。难道你不失望吗?你正在阅读一个很好的故事,突然间作者必须停下来介绍云。谁在乎云是什么? 通…...
探索Web中的颜色选择:不同取色方法的实现
在Web开发中,提供用户选择颜色的功能是很常见的需求。无论是为了个性化UI主题,还是为了图像编辑工具,一个直观且易用的取色器都是必不可少的。本文将介绍几种在Web应用中实现取色功能的方法,从简单的HTML输入到利用现代API的高级技…...
突破编程_C++_设计模式(策略模式)
1 策略模式的概念 策略模式(Strategy Pattern)是 C 中常用的一种行为设计模式,它能在运行时改变对象的行为。在策略模式中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为模式。 在策略模式中,需…...
【uniapp】uniapp小程序中实现拍照同时打开闪光灯的功能,拍照闪光灯实现
一、需求前提 特殊场景中,需要拍照的同时打开闪光灯,(例如黑暗场景下的设备维护巡检功能)。 起初我是用的uviewui中的u-upload组件自带的拍照功能,但是这个不支持拍照时打开闪光灯,也不支持从通知栏中打开…...
在python model train里如何驯服野生log?
关键词:python 、epoch、loss、log 🤖: 记录模型的训练过程的步骤如下: 导入logging模块。配置日志记录器,设置日志文件名、日志级别、日志格式等。在每个epoch结束时,使用logging模块记录性能指标、损失值、准确率等信…...
产品推荐 - Xilinx FPGA下载器 XQ-HS/STM2
1 FPGA下载器简介 1.性能优良 FPGA下载器XQ-HS/STM2采用Xilinx下载模块设计而成(JTAG-SMT2NC模块,该模块与Xilinx官方开发板KC705,KCU105,ZC702,ZC706,Zedboard等板载下载器一样,下载速度快…...
STM32 SDRAM知识点
1.SDRAM和SRAM的区别 SRAM不需要刷新电路即能保存它内部存储的数据。而SDRAM(Dynamic Random Access Memory)每隔一段时间,要刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它…...
手写分布式配置中心(六)整合springboot(自动刷新)
对于springboot配置自动刷新,原理也很简单,就是在启动过程中用一个BeanPostProcessor去收集需要自动刷新的字段,然后在springboot启动后开启轮询任务即可。 不过需要对之前的代码再次做修改,因为springboot的配置注入value("…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
