Typescript入门学习笔记

1.ts介绍与安装

Javascript是一门弱类型动态语言,开发大型项目时,开发速度快,但是后期维护非常困难

针对于JavaScript的此个痛点,有了TyepScript.(微软开发),属于Javascript的超集.对JavaScript语法就行了扩展.添加了静态类型检查和一些新的特性

现有的JavaScript代码可以与TypeScript一起工作,无需进行任何转换和修改.(TyepScript中可以允许JavaScript代码!)

TypeScript通过类型注解提供编译时的静态类型检查.

安装

npm i typescript -g

(安装完毕输入tsc -v查看版本)

tsc

在项目命令行中输入tsc会生成tsconfig,json文件,编译项目中的所有ts文件

tsc xxx.ts

只编译xxx.ts文件

tsc -w xxx.ts

监听xxx.ts文件 只要保存就编译

安装ts-node

npm i ts-node -t

ts-node xxx.ts //直接运行xxx.ts


ts基本类型

1.Boolean(布尔型):标识逻辑值true或false

let isDone: boolean = false;

2.Number(数字型):表示数字,包括整数和浮点数。

let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;

3.String(字符串型):表示文本数据。

let color: string = "blue";
let fullName: string = `Bob Bobbington`;

4.Array(数组型):表示一组同类型的值的集合。

let list: number[] = [1, 2, 3];
let fruits: Array<string> = ["apple", "banana", "orange"];

number[ ]代表元素为number类型的数组,Array<string> 代表元素为string类型的数组

5.Tuple(元组型):表示已知数量和类型的数组。

let x: [string, number];
x = ["hello", 10]; // OK
// x = [10, "hello"]; // Error

6.Enum(枚举型):用于定义一组命名的常量值。

enum Color {Red,Green,Blue,
}
let c: Color = Color.Green;

7.Any(任意型):表示任意类型的值,可以在编译时或运行时动态改变类型。

let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false; // OK

8.Void(无类型):表示没有任何类型,通常用于函数没有返回值的情况。

function warnUser(): void {console.log("This is a warning message");
}

无返回值

9.Null 和 Undefined(空和未定义):表示值为空或未定义。

let u: undefined = undefined;
let n: null = null;

严格模式下undefined != null,非严格模式下等于

10.Never(永不存在的值的类型):表示永远不存在的值的类型,用于抛出异常或无法执行到终点的函数。

function error(message: string): never {throw new Error(message);
}

11.unknow类型:表示值的类型未知,在类型检查时它类似于 any 类型,但是与 any 类型不同的是,unknown 类型的变量不能直接赋值给其他类型的变量,除非进行类型断言或类型检查。

 

let userInput: unknown;
let userName: string;userInput = 5;
userInput = "Max";// 不能直接将 unknown 类型的值赋值给其他类型的变量
// userName = userInput; // Error: Type 'unknown' is not assignable to type 'string'// 需要进行类型检查或类型断言后才能赋值
if (typeof userInput === "string") {userName = userInput; // OK
}// 或者使用类型断言
userName = userInput as string; // OK

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/785778.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第十九章 UML

统一建模语言(Unified Modeling Language&#xff0c; UML )是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言&#xff0c;是非专利的第三代建模和规约语言。 UML 是面向对象设计的建模工具&#xff0c;独立于任何具体程序设计语言。 一、简介 UML 作为一…

正大国际:做qi货靠运气多点还是靠自己学习到认知度?

一个人能赚到自己认知范围以外的钱靠的是运气&#xff0c;能赚到自己认知范围内的钱靠的是能力。期货市场试错成本较高&#xff0c;交易自己熟悉和擅长的领域会大大降低失败概率。期货市场机会很多&#xff0c;陷阱也很多&#xff0c;如何坚持做认知范围内的决策是一个重要的交…

docker部署开源软件的国内镜像站点

下载镜像 docker pull registry.cn-beijing.aliyuncs.com/wuxingge123/le_monitor:latestdocker-compose部署 vim docker-compose.yml version: 3 services:le_monitor:container_name: le_monitorimage: registry.cn-beijing.aliyuncs.com/wuxingge123/le_monitor:latestpo…

算法——距离计算

距离计算常用的算法包括欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、余弦相似度等。这些算法在数据挖掘、机器学习和模式识别等领域中被广泛应用。 1.欧氏距离 欧式距离也称欧几里得距离&#xff0c;是最常见的距离度量&#xff0c;衡量的是多维空间中两个点之间的…

心里健康(健康与生存)

你还认为 健康 是有个强壮的身体吗&#xff1f; 这样 肯定是错的 我们来说说 什么是健康与现代健康观 以及影响健康的因素 有哪些&#xff1f; 以及 健康对个人与社会的意义 首先 我们来看看 健康演变过程 公元 1000 年 Health 首次出现 它代表了 强壮 健全 完整等含义 健康 …

十四.PyEcharts基础学习

目录 1-PyEcharts介绍 优点&#xff1a; 安装: 官方文档&#xff1a; 2-PyEcharts快速入门 2.1 第一个图表绘制 2.2 链式调用 2.3 opeions配置项 2.4 渲染图片文件 2.5 使用主题 3-PyEcharts配置项 3.1 初始化配置项InitOpts InitOpts 3.2 全局配置项set_global_o…

京东云明修“价格战”,暗渡“政企云”

文&#xff5c;白 鸽 编&#xff5c;王一粟 云计算行业越来越“卷”&#xff0c;一边卷大模型&#xff0c;一边卷价格。 2024 刚一开年&#xff0c;阿里云就宣布百余款产品大降价&#xff0c;最高降幅达55%。在阿里云宣布降价后&#xff0c;京东云紧随其后宣布&#xff0…

80C51实现四种流水灯流水灯 | 自用学习笔记

单个流水灯 #include <reg51.h> #include <intrins.h> // 包含移位库函数的头文件void delay(void) // 定义延时函数 {unsigned char i, j;for(i 0; i < 200; i) // 循环延时&#xff0c;延时约50msfor(j 0; j < 125; j); }void main(void){ unsigned ch…

AcWing刷题-游戏

游戏 DP l lambda: [int(x) for x in input().split()]n l()[0] w [0] while len(w) < n:w l()s [0] * (n 1) for i in range(1, n 1): s[i] s[i - 1] w[i]f [[0] * (n 1) for _ in range(n 1)]for i in range(1, n 1): f[i][i] w[i]for length in range(2, …

[BT]BUUCTF刷题第13天(4.1)

第13天 Upload-Labs-Linux (Basic) Pass-01 根据题目提示&#xff0c;该题为绕过js验证。 一句话木马&#xff1a; <?php eval(system($_POST["cmd"]));?> // 符号 表示后面的语句即使执行错误&#xff0c;也不报错。 // eval() 把括号内的字符串全部…

rtsp协议详解-最详细的流媒体传输协议

流媒体传输协议-rtsp协议详解 rtsp RTSP出现以前&#xff0c;最热的大概就是HTTP协议。想象一下&#xff0c;当你需要欣赏网络中的某一段视频&#xff0c;通过HTTP协议访问其URL、开始下载、下载完成后播放。对于早期的视频采集设备、网络带宽或是负责渲染的显示器而言&#…

Redis中的复制功能(一)

复制 概述 在Redis中&#xff0c;用户可以通过执行SLAVEOF命令或者设置slaveof选项&#xff0c;让一个服务器去复制(replicate)另一个服务器&#xff0c;我们称呼被复制的服务器为主服务器(master)&#xff0c;而对主服务器进行复制的服务器则被称为从服务器(slave),如图所示…

关于list的那些事

1.什么是List 在集合框架中&#xff0c;List是一个接口&#xff0c;继承自Collection。 Collection也是一个接口&#xff0c;该接口中规范了后序容器中常用的一些方法具体如下所示 Iterable也是一个接口&#xff0c;表示实现该接口的类是可以逐个元素遍历的&#xff0c;具体如…

深度学习| DiceLoss解决图像数据不平衡问题

图像数据不平衡问题 图像数据不平衡&#xff1a;在进行图像分割时&#xff0c;二分类问题中&#xff0c;背景过大&#xff0c;前景过小&#xff1b;多分类问题中&#xff0c;某一类别的物体体积过小。在很多图像数据的时候都会遇到这个情况&#xff0c;尤其是在医学图像处理的…

每日一题 --- 两数之和[力扣][Go]

两数之和 题目&#xff1a;1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案…

深入理解 Java 序列化中的 readResolve() 方法

深入理解 Java 序列化中的 readResolve() 方法 在 Java 编程中&#xff0c;序列化是一个将对象状态转换为字节流以便存储或传输的过程&#xff0c;而反序列化则是将这些字节流恢复为原始对象状态的过程。Java 提供了强大的序列化机制&#xff0c;使得开发者能够轻松地处理对象…

SSM框架学习——Spring的控制反转IoC与依赖注入DI

控制反转IoC与依赖注入DI 概念 提到Spring首先想到的肯定是Spring的IoC容器了。在了解Spring的用法之前我们必须了解什么是控制反转IoC和依赖注入DI。 **控制反转&#xff08;Inversion of Control&#xff09;**是面向对象编程中的一种设计原则&#xff0c;它建议将不需要的…

全量知识系统 详细设计 之preserving (百度AI助手QA)

Q1. 1、三种对象三种库&#xff1a;python 数据对象 none对象: 对等立方体&#xff08;PQR&#xff09; ole对象Y 。 pqr均为立体库&#xff08;工厂级的&#xff09;&#xff1b;Java 类对象 Empty对象 &#xff1a;公差立方体(XYZ ) 值对象C。 xyz均为线库&#xff08;车间…

【软考】系统集成项目管理工程师(二十二)法律法规【2分】

一、合同法 1、内容 当事人的名称或者姓名和住所、标的、数量、质量、价款或者报酬&#xff1b;履行期限、地点和方式&#xff1b;违约责任和解决争议的方法 练一练 【例1-高16下】格式条款是当事人为了重复使用而预先拟定&#xff0c;并在订立合同时未与对方协商的…

Java language programming:求学生的平均身高

题目&#xff1a; 从键盘输入若干个人的身高&#xff0c;计算出平均身高&#xff08;平均身高为int类型&#xff09;。当输入身高值为0时&#xff0c;表示输入结束。 输入格式: 输入若干个人的身高值输入在同一行&#xff0c;用空格分隔。 输出格式: 按照输出样例格式输出平均…