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

TypeScript ~ 掌握基本类型 ②

请添加图片描述

@作者 : SYFStrive

 
请添加图片描述

@博客首页 : HomePage

📜: TypeScript ~ TS

📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗

📌:觉得文章不错可以点点关注 👉:专栏连接🔗

请添加图片描述
相关专栏

👉 微信小程序(🔥)
👉 UNIAPP开发(🔥)


                    ⡖⠒⠒⠒⠤⢄⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸   ⠀⠀⠀⡼⠀⠀⠀⠀ ⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢶⣲⡴⣗⣲⡦⢤⡏⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠋⠉⠉⠓⠛⠿⢷⣶⣦⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠇⠀⠀⠀⠀⠀⠀⠘⡇⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡞⠀⠀⠀⠀⠀⠀⠀⢰⠇⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡴⠊⠉⠳⡄⠀⢀⣀⣀⡀⠀⣸⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠃⠀⠰⠆⣿⡞⠉⠀⠀⠉⠲⡏⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠈⢧⡀⣀⡴⠛⡇⠀⠈⠃⠀⠀⡗⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣱⠃⡴⠙⠢⠤⣀⠤⡾⠁⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢀⡇⣇⡼⠁⠀⠀⠀⠀⢰⠃⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣸⢠⣉⣀⡴⠙⠀⠀⠀⣼⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡏⠀⠈⠁⠀⠀⠀⠀⢀⡇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠃⠀⠀⠀⠀⠀⠀⠀⡼⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⣰⠃⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣀⠤⠚⣶⡀⢠⠄⡰⠃⣠⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢀⣠⠔⣋⣷⣠⡞⠀⠉⠙⠛⠋⢩⡀⠈⠳⣄⠀⠀⠀⠀⠀⠀⠀
⠀⡏⢴⠋⠁⠀⣸⠁⠀⠀⠀⠀⠀ ⠀⣹⢦⣶⡛⠳⣄⠀⠀⠀⠀⠀
⠀⠙⣌⠳⣄⠀⡇   不能   ⡏⠀⠀  ⠈⠳⡌⣦⠀⠀⠀⠀
⠀⠀⠈⢳⣈⣻⡇   白嫖 ⢰⣇⣀⡠⠴⢊⡡⠋⠀⠀⠀⠀
⠀⠀⠀⠀⠳⢿⡇⠀⠀⠀⠀⠀⠀⢸⣻⣶⡶⠊⠁⠀⠀
⠀⠀⠀⠀⠀⢠⠟⠙⠓⠒⠒⠒⠒⢾⡛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣠⠏⠀⣸⠏⠉⠉⠳⣄⠀⠙⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⡰⠃⠀⡴⠃⠀⠀⠀⠀⠈⢦⡀⠈⠳⡄⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣸⠳⣤⠎⠀⠀⠀⠀⠀⠀⠀⠀⠙⢄⡤⢯⡀⠀⠀⠀⠀⠀⠀
⠀⠐⡇⠸⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⡆⢳⠀⠀⠀⠀⠀⠀
⠀⠀⠹⡄⠹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⠸⡆⠀⠀⠀⠀⠀
⠀⠀⠀⠹⡄⢳⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡀⣧⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢹⡤⠳⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣷⠚⣆⠀⠀⠀⠀
⠀⠀⠀⡠⠊⠉⠉⢹⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡎⠉⠀⠙⢦⡀⠀
⠀⠀⠾⠤⠤⠶⠒⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠒⠲⠤⠽   

提示:以下是本篇文章正文内容

T y p e S c r i p t TypeScript TypeScript 简介


  1. TypeScript是JavaScript的超集。
  2. 它对JS进行了扩展,向JS中引入了类型的概念,并添加了许多新的特性。
  3. TS代码需要通过编译器编译为 → JS,然后再交由JS解析器执行。
  4. TS完全兼容JS,换言之,任何的JS代码都可以直接当成JS使用。
  5. 相较于JS而言,TS拥有了静态类型,更加严格的语法,更强大的功能;TS可以在代码执行前就完成代码的检查,减小了运行时异常的出现的几率;TS代码可以编译为任意版本的JS代码,可有效解决不同JS运行环境的兼容问题;同样的功能,TS的代码量要大于JS,但由于TS的代码结构更加清晰,变量类型更加明确,在后期代码的维护中TS却远远胜于JS

T y p e S c r i p t TypeScript TypeScript 开发环境搭建

  1. 官方 https://www.tslang.cn/index.html

  2. 下载Node.js

    • 64位:https://nodejs.org/dist/v14.15.1/node-v14.15.1-x64.msi
    • 32位:https://nodejs.org/dist/v14.15.1/node-v14.15.1-x86.msi
  3. 安装Node.js

  4. 使用npm全局安装typescript

    • 进入命令行
    • 输入:npm i -g typescript
  5. 创建一个ts文件

  6. 使用tsc对ts文件进行编译

    • 进入命令行

    • 进入ts文件所在目录

    • 执行命令:tsc xxx.ts

T y p e S c r i p t TypeScript TypeScript 基本类型

  • 类型声明

    • 类型声明是TS非常重要的一个特点

    • 通过类型声明可以指定TS中变量(参数、形参)的类型

    • 指定类型后,当为变量赋值时,TS编译器会自动检查值是否符合类型声明,符合则赋值,否则报错

    • 简而言之,类型声明给变量设置了类型,使得变量只能存储某种类型的值

语法 ↓

 let 变量: 类型;let 变量: 类型 =;function fn(参数: 类型, 参数: 类型): 类型{...}
  • 自动类型判断

    • TS拥有自动的类型判断机制
    • 当对变量的声明和赋值是同时进行的,TS编译器会自动判断变量的类型
    • 所以如果你的变量的声明和赋值时同时进行的,可以省略掉类型声明

类型 ↓

类型例子描述
number1, -33, 2.5任意数字
string‘hi’, “hi”, hi任意字符串
booleantrue、false布尔值true或false
字面量其本身限制变量的值就是该字面量的值
any*任意类型
unknown*类型安全的any
void空值(undefined)没有值(或undefined)
never没有值不能是任何值
object{name:‘孙悟空’}任意的JS对象
array[1,2,3]任意JS数组
tuple[4,5]元素,TS新增类型,固定长度数组
enumenum{A, B}枚举,TS中新增类型

    T y p e S c r i p t TypeScript TypeScript ~ V o i d Void Void

V o i d Void Void演示 ↓

  • void → 空的
let unusable: void = undefined;

    T y p e S c r i p t TypeScript TypeScript ~ N e v e r Never Never

N e v e r Never Never演示 ↓

  • never → 从不
function error(message: string): never {throw new Error(message);
}

    T y p e S c r i p t TypeScript TypeScript ~ O b j e c t Object Object

O b j e c t Object Object演示 ↓

  • object(一切皆对象)→ 对象
let obj: object = {};
// {} 用来指定对象中可以包含哪些属性
// 语法:{属性名:属性值,属性名:属性值}
// 在属性名后边加上?,表示属性是可选的
let b: {name: string, age?: number};
b = {name: '孙悟空', age: 18};// [propName: string]: any 表示任意类型的属性
let c: {name: string, [propName: string]: any};
c = {name: '猪八戒', age: 18, gender: '男'};// 设置函数结构的类型声明:
//     语法: (形参:类型, 形参:类型 ...) => 返回值
let d: (a: number, b: number) => number;
// d = function (n1: string, n2: string): number{
//     return 10;
// }

    T y p e S c r i p t TypeScript TypeScript ~ A r r a y Array Array

A r r a y Array Array演示 ↓

  • array → 数组
 let list: number[] = [1, 2, 3];let list: Array<number> = [1, 2, 3];

    T y p e S c r i p t TypeScript TypeScript ~ T u p l e Tuple Tuple

T u p l e Tuple Tuple演示 ↓

  • tuple → 元组
//元组,元组就是固定长度的数组
//	语法:[类型, 类型, 类型]let x: [string, number];x = ["hello", 10]; 

    T y p e S c r i p t TypeScript TypeScript ~ E n u m Enum Enum

E n u m Enum Enum演示 ↓

  • enum → 枚举
enum Color {Red,Green,Blue,
}
let c: Color = Color.Green;enum Color {Red = 1,Green,Blue,
}
let c: Color = Color.Green;enum Color {Red = 1,Green = 2,Blue = 4,
}
let c: Color = Color.Green;

    T y p e S c r i p t TypeScript TypeScript ~ A s s e r t i o n Assertion Assertion o f of of t y p e type type

类型断言 ↓

说明 : 有些情况下,变量的类型对于我们来说是很明确,但是TS编译器却并不清楚,此时,可以通过类型断言来告诉编译器变量的类型,断言有两种形式:

  • 语法:
	变量 as 类型<类型>变量
  • 第一种
let someValue: unknown = "this is a string";
let strLength: number = (someValue as string).length;
  • 第二种
let someValue: unknown = "this is a string";
let strLength: number = (<string>someValue).length;

总结

以上是个人学习TypeScript的相关知识点,一点一滴的记录了下来,有问题请评论区指正,共同进步,这才是我写文章的原因之,如果这篇文章对您有帮助请三连支持一波

http://www.lryc.cn/news/94253.html

相关文章:

  • 【Zookeeper】win安装随笔
  • Unity 之 最新原生广告Ads接入 -- 助力增长游戏收益
  • ChatGPT是否可以进行逻辑推理?
  • TP6在composer包里写控制器
  • Java面试Day11
  • python生成日报
  • 【机器学习】——续上:卷积神经网络(CNN)与参数训练
  • 鲸鱼算法WOA优化VMD参数,最小包络熵、样本熵、信息熵、排列熵(适应度函数可自行选择,一键修改)包含MATLAB源代码...
  • ELK日志收集系统集群实验
  • 用Python写了一个下载网站所有内容的软件,可见即可下
  • gin使用embed打包html
  • Android启动优化实践
  • ROS:通信机制实操
  • C/C++内存管理(内存分布、动态内存分配、动态内存分配与释放、内存泄漏等)
  • 【云原生】软件架构的演进以及各个架构的优缺点
  • 力扣刷题笔记——二叉树
  • 【华为OD机试】工号不够用了怎么办?(python, java, c++, js)
  • 【leetcode】198. 打家劫舍
  • 【react全家桶学习】react的 (新/旧) 生命周期(重点)
  • Gradio私网和公网的使用
  • ant design vue 配置菜单外部打开
  • YOLOv5/v7 添加注意力机制,30多种模块分析⑦,CCN模块,GAMAttention模块
  • IDEA下Logback.xml自动提示功能配置
  • CUDA编程模型系列八(原子操作 / 规约 / 向量元素求和)
  • go语言系列基础教程总结(4)
  • 网络基础一:网络协议初识与网络传输基本流程
  • Mysql找出执行慢的SQL【慢查询日志使用与分析】
  • 设计模式3:单例模式:JMM与volatile和synchronized的关系
  • 一个简单的OPC UA/ModbusTCP 网关(Python)
  • 线性代数行列式的几何含义