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

typeScript--[数据定义]

一.安装ts

1.命令行运行如下命令,全局安装 TypeScript:

npm install -g typescript

2.安装完成后,在控制台运行如下命令,检查安装是否成功

tsc -V 

二.创建ts文件

1.创建一个day01.ts文件,随便在里面码一点代码:

console.log("hello ts")

2.在命令行上,运行 TypeScript 编译器(手动编译为js文件):

tsc day01.ts

输出结果为一个 day01.js 文件,它包含了和输入文件中相同的 JavsScript 代码。

3.在命令行上,通过 Node.js 运行这段代码:

node day01.js

控制台会打印出来

hello ts

4.vscode自动编译ts文件

1.  生成配置文件tsconfig.jsontsc --init
2.  修改tsconfig.json配置"outDir": "./js", //输出文件到当前文件下的js文件夹"strict": false,    
3.  启动监视任务: 终端 -> 运行任务 -> 监视tsconfig.json

三.基本类型的定义规范

1.基础语法:

首先在 TS 中,创建变量时,var、let、const 还是和 JS 中的使用方式一样,但是,在声明变量时需要约束变量的数据类型:

var 变量名: 类型 = 值;

2.基本定义示例:

var a:number = 1
var b:string = "hello"
var c:boolean = true
var d:undefined = undefined
var e:null = null

3.void

void 在 TS 中用来表示没有任何数据类型。通常,当一个函数没有返回值的时候,我们会将返回值的类型设置为 void,如果return了一个返回值会报错。

例如定义一个函数没有返回值:

function f(): void {console.log(123)
}

4.any

any 在 TS 中用来表示任意数据类型。通常,只有当值来自于一些动态的内容,我们在一开始确定不了值的类型,可以选择使用 any。其他情况下都不推荐使用 any:

var g: any = "hello"
g = 123
g = null

5.array

TS 中要求数组中的每一项必须是同一个数据类型。

var h: number[] = [1, 2, 3]
var i: Array<number> = [1,2,3] //定义的数组里只能存在number类型的数据//Array<string> = ["1","2","3"] //只能存在string类型的数据
var j: Array<any> = ["1", 2, true]   //如果存在不同类型推荐使用 any

6.元组

元组中,允许一个数组中保存多个类型的数据。

但是,要求数组中的值与元组类型必须:数量要对应、位置要对应、类型要对应。

var k: [number, string] = [1, "hello"]

7.object

 TS 中定义对象时,需要定义出对象中有哪些属性,每一个属性的值是什么类型。

var l: { id: number, name: string } = {id: 1,name: "逍遥的码农"
}

8.enum枚举

enum num {one,two,three
}
var m:num = num.one
console.log(m) //0

这里会输出0,因为枚举不赋值会取下标

赋值情况下看一下

enum num {one,two = 5,three
}
var m:num = num.three
console.log(m) //6

这里会输出6,这里会递增

(1)普通枚举(编译js会生成对应的代码)

//ts代码
enum num {one,two = 5,three
}
var m:num = num.three
console.log(m)//js代码
// var num;
// (function (num) {
//     num[num["one"] = 0] = "one";
//     num[num["two"] = 5] = "two";
//     num[num["three"] = 6] = "three";
// })(num || (num = {}));
// var m = num.three;
// console.log(m);

(2)常量枚举(编译后不会产生多余的代码)

//ts代码
const enum num {one,two = 5,three
}
var m:num = num.three
console.log(m)//js代码
// var m = 6 /* num.three */;

可以看到就编译了一行

9.never

never类型表示永远不会有值的一种类型。

// 返回never的函数必须存在无法达到的终点
// 因为总是抛出异常,所以 error 将不会有返回值
function error(message: string): never {throw new Error(message);
}
// 因为存在死循环,所以 infiniteLoop 将不会有返回值
function infiniteLoop(): never {while (true) {}
}

相关文章:

typeScript--[数据定义]

一.安装ts 1.命令行运行如下命令&#xff0c;全局安装 TypeScript&#xff1a; npm install -g typescript2.安装完成后&#xff0c;在控制台运行如下命令&#xff0c;检查安装是否成功 tsc -V 二.创建ts文件 1.创建一个day01.ts文件&#xff0c;随便在里面码一点代码&…...

【常见相机模型】

常见相机模型 enum class Type {kPinhole 0,kUnifiedProjection 1,kOmni 2, //optimize_on_spherekEqFisheye 3};其余类型optimize_on_plane这4种类型的相机模型具有以下差异&#xff1a; kPinhole (针孔相机模型)&#xff1a;这是最基本和常见的相机模型。它假设光线通过…...

大数据-玩转数据-Flink状态编程(上)

一、Flink状态编程 有状态的计算是流处理框架要实现的重要功能&#xff0c;因为稍复杂的流处理场景都需要记录状态&#xff0c;然后在新流入数据的基础上不断更新状态。 SparkStreaming在状态管理这块做的不好, 很多时候需要借助于外部存储(例如Redis)来手动管理状态, 增加了编…...

主动获取用户的ColaKey接口

主动获取用户的ColaKey接口 一、主动获取用户的ColaKey接口二、使用步骤1、接口***重要提示:建议使用https协议,当https协议无法使用时再尝试使用http协议***2、请求参数 三、 请求案例和demo1、请求参数例子&#xff08;POST请求&#xff0c;参数json格式&#xff09;2、响应返…...

C#写一个UDP程序判断延迟并运行在Centos上

服务端 using System.Net.Sockets; using System.Net;int serverPort 50001; Socket server; EndPoint client new IPEndPoint(IPAddress.Any, 0);//用来保存发送方的ip和端口号CreateSocket();void CreateSocket() {server new Socket(AddressFamily.InterNetwork, SocketT…...

Kafka核心原理第二弹——更新中

架构原理 一、高吞吐机制&#xff1a;Batch打包、缓冲区、acks 1. Kafka Producer怎么把消息发送给Broker集群的&#xff1f; 需要指定把消息发送到哪个topic去 首先需要选择一个topic的分区&#xff0c;默认是轮询来负载均衡&#xff0c;但是如果指定了一个分区key&#x…...

巨人互动|游戏出海H5游戏出海规模如何?

H5游戏出海是指将H5游戏推广和运营扩展到国外市场的行为&#xff0c;它的规模受到多个因素的影响。本文小编讲一些关于H5游戏出海规模的详细介绍。 1、市场规模 H5游戏出海的规模首先取决于目标市场的规模。不同国家和地区的游戏市场规模差异很大&#xff0c;有些市场庞大而成…...

【爬虫】实验项目三:验证码处理与识别

目录 一、实验目的 二、实验预习提示 三、实验内容 实验要求 基本要求&#xff1a; 改进要求A&#xff1a; 改进要求B&#xff1a; 四、实验过程 基本要求 五、源码如下 六、资料 一、实验目的 部分网站可能会使用验证机制来阻止用户无效登录或者是验证用户不是用程…...

广东成人高考报名将于9月14日开始!

截图来自广东省教育考试院官网* 今年的广东成人高考正式报名时间终于确定了&#xff01; 报名时间&#xff1a;2023年 9 月14—20日 准考证打印时间&#xff1a;考前一周左右 考试时间&#xff1a;2023年10月21—22日 录取时间&#xff1a;2023年12 月中上旬 报名条件: …...

pytorch中文文档学习笔记

先贴上链接 torch - PyTorch中文文档 首先我们需要安装拥有pytorch的环境 conda指令 虚拟环境的一些指令 查看所有虚拟环境 conda info -e 创建新的虚拟环境 conda create -n env_name python3.6 删除已有环境 conda env remove -n env_name 激活某个虚拟环境 activate env…...

element-ui全局导入与按需引入

全局引入 npm i element-ui -S 安装好depencencies里面可以看到安装的element-ui版本 然后 在 main.js 中写入以下内容&#xff1a; import Vue from vue; import ElementUI from element-ui; import element-ui/lib/theme-chalk/index.css; import App from ./App.vue;Vue.…...

go 地址 生成唯一索引v2 --chatGPT

问&#xff1a;golang 函数 getIndex(n,addr,Hlen,Tlen) 返回index。参数n为index的上限&#xff0c;addr为包含大小写字母数字的字符串,Hlen为截取addr头部的长度&#xff0c;Tlen为截取addr尾部的长度 gpt: 你可以编写一个函数来计算根据给定的参数 n、addr、Hlen 和 Tlen …...

JSON XML

JSON&#xff08;JavaScript Object Notation&#xff09;和XML&#xff08;eXtensible Markup Language&#xff09;是两种常用的数据交换格式&#xff0c;用于在不同系统之间传输和存储数据。 JSON是一种轻量级的数据交换格式&#xff0c;它使用易于理解的键值对的形式表示数…...

2023年MySQL实战核心技术第四篇

七 . 吃透索引&#xff1a;...

cmake编译(qtcreator)mingw下使用的osg3.6.5

官网下载osg3.6.5源码&#xff0c;先不使用依赖库&#xff0c;直接进行编译 如果generate后报错&#xff0c;显示找不到boost必须库&#xff0c;则手动增加路径。然后先在命令行中使用mingw32-make&#xff0c;如果显示不存在&#xff0c;则需要去环境变量里配置一下这个工具的…...

Python钢筋混凝土结构计算.pdf-混凝土强度设计值

计算原理&#xff1a; 需要注意的是&#xff0c;根据不同的规范和设计要求&#xff0c;上述公式可能会有所差异。因此&#xff0c;在进行混凝土强度设计值的计算时&#xff0c;请参考相应的规范和设计手册&#xff0c;以确保计算结果的准确性和合规性。 代码实现&#xff1a; …...

elasticsearch的索引库操作

索引库就类似数据库表&#xff0c;mapping映射就类似表的结构。我们要向es中存储数据&#xff0c;必须先创建“库”和“表”。 mapping映射属性 mapping是对索引库中文档的约束&#xff0c;常见的mapping属性包括&#xff1a; type&#xff1a;字段数据类型&#xff0c;常见的…...

把握市场潮流,溯源一流品质:在抖in新风潮 国货品牌驶过万重山

好原料、好设计、好品质、好服务……这个2023&#xff0c;“国货”二字再度成为服饰行业的发展关键词。以消费热潮为翼&#xff0c;越来越多代表性品类、头部品牌展现出独特价值&#xff0c;迎风而上&#xff0c;在抖音电商掀起一轮轮生意风潮。 一个设问是&#xff1a;在抖音…...

【网络教程】Python如何优雅的分割URL

文章目录 URL分割方法是一种用于解析URL字符串的方法,它可以将URL分解成不同的组成部分,如协议、域名、端口、路径等。在Python中,我们可以使用urllib.parse模块中的urlsplit方法来实现URL分割。 使用方法 下面是一个简单的示例代码,演示了如何使用urlsplit方法解析URL字符…...

1998-2014年工业企业数据库和绿色专利匹配

1998-2014年工业企业数据库绿色专利匹配 1、时间&#xff1a;1998-2014年 2、样本量&#xff1a;470万 3、来源&#xff1a;工业企业数据库、国家知识产权局、WIPO 4、指标&#xff1a; 企业匹配唯一标识码、组织机构代码、企业名称、年份、法定代表人、法定代表人职务、行…...

Python基于Mirai开发的QQ机器人保姆式教程(亲测可用)

在本教程中&#xff0c;我们将使用Python和Mirai来开发一个QQ机器人&#xff0c;本文提供了三个教学视频&#xff0c;包教包会&#xff0c;本文也很贴心贴了代码和相关文件。话不多说&#xff0c;直接开始教学。 目录 一、安装配置MIrai 图片验证码报错&#xff1a; 二、机器…...

算法笔记:堆

【如无特别说明&#xff0c;皆为最小二叉堆】 1 介绍 2 特性 结构性&#xff1a;符合完全二叉树的结构有序性&#xff1a;满足父节点小于子节点&#xff08;最小化堆&#xff09;或父节点大于子节点&#xff08;最大化堆&#xff09; 3 二叉堆的存储 顺序存储 二叉堆的有序…...

vue3 判断包含某个字符

<img v-if"node.level 1 && checkIfIncludeSubStr(node.label, 人口)"src"/assets/images/icon-convention-01.png" width"16"class"inlineBlock Vmiddle" style"margin-right: 8px;"/>const data reactive…...

MySQL的故事——查询性能优化

查询性能优化 文章目录 查询性能优化一、查询优化器的提示(hint)二、优化特定类型的查询 一、查询优化器的提示(hint) HIGH_PRIORITY和LOW_PRIORITY 这个提示告诉MySQL&#xff0c;当多个语句同时访问某一个表时&#xff0c;哪些语句的优先级相对高些&#xff0c;哪些相对低些…...

在外SSH远程连接macOS服务器【cpolar内网穿透】

文章目录 前言1. macOS打开远程登录2. 局域网内测试ssh远程3. 公网ssh远程连接macOS3.1 macOS安装配置cpolar3.2 获取ssh隧道公网地址3.3 测试公网ssh远程连接macOS 4. 配置公网固定TCP地址4.1 保留一个固定TCP端口地址4.2 配置固定TCP端口地址 5. 使用固定TCP端口地址ssh远程 …...

Nosql数据库服务之redis

Nosql数据库服务之redis 一图详解DB的分支产品 Nosql数据库介绍 是一种非关系型数据库服务&#xff0c;它能解决常规数据库的并发能力&#xff0c;比如传统的数据库的IO与性能的瓶颈&#xff0c;同样它是关系型数据库的一个补充&#xff0c;有着比较好的高效率与高性能。 专…...

当AI遇到IoT:开启智能生活的无限可能

文章目录 1. AI和IoT的融合1.1 什么是人工智能&#xff08;AI&#xff09;&#xff1f;1.2 什么是物联网&#xff08;IoT&#xff09;&#xff1f;1.3 AI和IoT的融合 2. 智能家居2.1 智能家居安全2.2 智能家居自动化 3. 医疗保健3.1 远程监护3.2 个性化医疗 4. 智能交通4.1 交通…...

Qt5界面Qt Designer上添加资源图片后,ModuleNotFoundError: No module named ‘rcc_rc‘ 的终极解决方案

在网上找了很久都没弄明白&#xff0c;最后还是自己思考解决了。 起因&#xff1a; 用 Qt Designer 添加资源文件作为背景图&#xff0c;编译 \resource\static\qrc> pyuic5 -o .\xx.py .\xx.ui发现在 xx.py 文件末尾中多了一个语句&#xff1a; import rcc_rc然后运行就…...

社群运营怎么做?

社区运营虽然说起来简单&#xff0c;可是实际执行起来却常常发现无从下手。刑天营销曾经做过社区运营的案子&#xff0c;我们也总结一套自己的方法&#xff0c;要做好社群运营&#xff0c;以下的这些问题就不能忽视&#xff1a; 一、做好社区定位 做社区运营&#xff0c;首先…...

Vite,Vue3项目引入dataV报错的解决方法

背景:开发一个大屏项目中,需要是要DataV的那边边框,装饰等,只是DataV是基于vue2的,vue3版的作者还在开发中,于是翻了DataV的源码,发现使用esm方式时是直接引入源码而不经过打包,其源码中使用的vue语法vue3也支持,所以可以直接在vue3中引入使用. vite,vue3项目直接引入DataV 安…...

沈阳做网站的/西安网站关键词推广

HTTP/2概述 HTTP/2意在减轻为维护HTTP/1.1复杂的底层架构而带来的痛苦&#xff0c;以提高HTTP/1.1的性能。尽管HTTP/2仍然对HTTP/1.1向下兼容&#xff0c;但它已不再是一个基于文本的协议。当客户端通过HTTP/1.1请求建立一个连接时&#xff0c;所有请求将会被升级。从这一点上…...

江苏九天建设有限公司网站/什么是广告营销

项目需求&#xff1a;公司目前有几十个项目&#xff0c;每个项目都独立使用一个lib&#xff0c;太占空间。网上查了一些资料可以多个项目共享jar包&#xff0c;这样就解决了项目包臃肿的问题。lib目录自定义即可;tomcat需要修改catalina.properties配置文件&#xff1a;1.share…...

免费app做logo的网站/关键词有哪些关联词

下载Visual Paradigm最新试用版第三部分 - 用UML序列图指定多方编排在多服务合同中&#xff0c;可以在交互图中显示各方之间的通信和编排。像UML序列图这样的交互图显示了谁调用谁以及何时进行调用。让我们绘制一个序列图来指定纳税服务的编排。单击服务合同纳税服务。单击形状…...

四川建设厅网站查询/苏州百度 seo

ACCESS可在菜单上选择[压缩]来压缩当前正打开的数据库&#xff0c;如是我们就可以通过程序临时添加一个工具条按钮&#xff0c;然后使用 SendKeys 来模拟键盘操作&#xff0c;实现压缩当前数据库&#xff0c;压缩后它会重新打开。函数如下&#xff1a;Function Compact() 添加一…...

洛米wordpress主题/网站开发软件有哪些

HDFS sink里有个属性hdfs.rollInterval86400&#xff0c;这个属性你设置了24小时滚动一次&#xff0c;它的确就到了24小时才滚动&#xff0c;但是我们的需求往往是到了0点就滚动文件了&#xff0c;因为离线的job因为都会放在夜里执行。 如果flume是早上9点启动的&#xff0c;那…...

成都公司网页制作/seo高级优化技巧

https://www.leiphone.com/news/201803/Tw0nrq6vGDIvbmXr.html 雷锋网(公众号&#xff1a;雷锋网)获悉&#xff0c;3月13日&#xff0c;东芝发布新AR眼镜dynaEdge AR&#xff0c;其由一个单臂眼镜和一个分离的计算单元组成。眼镜售价1899美元&#xff0c;面向企业级用户。 当所…...