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

1. TypeScript基本语法

TypeScript 学习总结

TypeScript 是一种 JavaScript 的超集,增加了静态类型检查和编译时错误检测,从而提高了代码的可维护性和可靠性。以下是 TypeScript 的基础知识总结,包括语法、运算符、数据类型、变量声明和作用域。

## 基本语法TypeScript 的基本语法与 JavaScript 相似,但增加了一些重要的功能:- **变量声明**:TypeScript 支持 `let`、`const` 和 `var` 声明变量。推荐使用 `let` 和 `const` 以确保更好的代码安全性。```typescriptlet name: string = 'Alice';const age: number = 30;
  • 函数
    函数的参数和返回值可以指定类型,从而确保函数的调用与实现的一致性。

    function greet(person: string, age: number): string {return `Hello ${person}, you are ${age} years old.`;
    }
    
  • 接口
    使用接口(interface)来定义对象的形状,提供了结构化的代码组织方式。

    interface Person {name: string;age: number;
    }const person: Person = {name: 'Bob',age: 25
    };
    

运算符

TypeScript 中的运算符大多与 JavaScript 中的运算符相同:

  • 算术运算符

    let x: number = 10;
    let y: number = 5;
    console.log(x + y); // 输出 15
    console.log(x - y); // 输出 5
    console.log(x * y); // 输出 50
    console.log(x / y); // 输出 2
    
  • 比较运算符

    let a: number = 10;
    let b: number = 20;
    console.log(a === b); // 输出 false
    console.log(a !== b); // 输出 true
    console.log(a > b);  // 输出 false
    
  • 逻辑运算符

    let isTrue: boolean = true;
    let isFalse: boolean = false;
    console.log(isTrue && isFalse); // 输出 false
    console.log(isTrue || isFalse); // 输出 true
    console.log(!isTrue); // 输出 false
    
  • 赋值运算符

    let num: number = 10;
    num += 5; // 相当于 num = num + 5
    console.log(num); // 输出 15
    

基础数据类型

TypeScript 提供了几种基础数据类型:

  • number:双精度 64 位浮点值。

    let num: number = 42;
    
  • string:字符系列,可以使用单引号(')、双引号(")或反引号(`)定义。

    let str: string = "Hello, TypeScript!";
    
  • boolean:表示逻辑值:truefalse

    let isActive: boolean = true;
    
  • enum:枚举类型用于定义数值集合。

    enum Color {Red, Green, Blue};
    let c: Color = Color.Blue;
    console.log(c);    // 输出 2
    
  • void:用于标识方法返回值的类型,表示该方法没有返回值。

    function logMessage(message: string): void {console.log(message);
    }
    
  • 其他数据类型

    • nullundefined:表示无值或未定义。
    • any:可以是任意类型。
    • never:表示从不会出现的值,例如函数抛出异常或无限循环。

变量声明

TypeScript 支持多种变量声明方式:

  • 声明变量并指定类型

    let uname: string = "hello";
    
  • 声明变量但没有初始值

    let uname: string;
    
  • 声明变量并初始化值,但不指定类型

    let uname = "hello"; // 类型推断为 string
    
  • 声明变量没有设置类型和初始值

    let uname; // 类型为 any,默认初始值为 undefined
    

变量作用域

变量作用域指定了变量定义的位置,并决定了变量的可用性。TypeScript 中有以下几种作用域:

  • 全局作用域:定义在程序结构的外部,可以在任何位置使用。

    var global_num = 12; // 全局变量
    
  • 类作用域:类中的变量称为字段,可以通过类的对象访问,也可以是静态的,通过类名访问。

    class Numbers { num_val = 13;      // 实例变量static sval = 10;  // 静态变量storeNum(): void { var local_num = 14; // 局部变量} 
    } 
    
  • 局部作用域:在函数或代码块内部定义的变量,仅在该作用域内可用。

    function example() {var local_num = 20; // 局部变量
    }
    

代码运行地址

您可以在 TypeScript 在线运行界面 上测试以下代码:

const hello: string = "Hello World!";
console.log(hello);

总结

通过 TypeScript 的静态类型检查、类型推断、接口、泛型等功能,我们能够编写更可靠、更易于维护的代码。理解和应用这些基础语法、运算符、数据类型和变量作用域,有助于提升代码质量和开发效率。
``

相关文章:

1. TypeScript基本语法

TypeScript 学习总结 TypeScript 是一种 JavaScript 的超集,增加了静态类型检查和编译时错误检测,从而提高了代码的可维护性和可靠性。以下是 TypeScript 的基础知识总结,包括语法、运算符、数据类型、变量声明和作用域。 ## 基本语法TypeS…...

C# UDP与TCP点发【速发速断】模式

1、UDP 客户端 //由于收发都在本机,所以只用一个IP地址 IPAddress addr IPAddress.Parse("127.0.0.1"); var ptLocal new IPEndPoint(addr,9001);//本机节点,用于发送var ptDst new IPEndPoint(addr,9002);//目标节点…...

pikachu下

CSRF(跨站请求伪造) CSRF(get) url变成了这样了,我们就可以新开个页面直接拿url去修改密码 http://pikachu-master/vul/csrf/csrfget/csrf_get_login.php?username1&password2&submitLogin CSRF(post) 这里只是请求的方式不同,…...

Go语言开发im-websocket服务和vue3+ts开发类似微信pc即时通讯

前言 IM即时通讯聊天, 为软件开发者打造,不依赖第三方sdk,完全用Go语言开发即时通讯服务,支持H5、Electron、Wails 、Uniapp和各种小程序的IM即时通讯, 快速实现私聊、群聊、在线客服!让你快速搭建一个微信聊天系统,打…...

Redis如何实现分布式锁

目录 获取锁: 释放锁: Lua脚本: Redisson 分布式锁是,满足分布式系统或集群模式下多进程可见并且互斥的锁,因为我们熟知的java中的锁只是在单体架构下单个jvm中才会生效,如果部署了多个jvm则会导致新的…...

面向对象程序设计之继承(C++)

1.继承的定义 1.1继承的概念 继承(inheritance)机制是⾯向对象程序设计使代码可以复⽤的最重要的⼿段,它允许我们在保持原有类特性的基础上进⾏扩展,增加⽅法(成员函数)和属性(成员变量),这样产⽣新的类,称派⽣类。继承 呈现了⾯向…...

IAPP发布《2024年人工智能治理实践报告》

文章目录 前言一、黑箱问题►透明度、可理解性与可解释性二、法律和政策中的注意事项►欧盟的《通用数据保护条例》►欧盟的AI法案►NIST的AI风险管理框架►美国的第14110号行政命令►《生成式人工智能服务管理暂行办法》►新加坡的AI验证三、实施人工智能治理►模型卡与系统卡…...

了解MySQL 高可用架构:主从备份

为了防止数据库的突然挂机,我们需要对数据库进行高可用架构。主从备份是常见的场景,通常情况下都是“一主一从/(多从)”。正常情况下,都是主机进行工作,从机进行备份主机数据,如果主机某天突然意外宕机,从机…...

[OpenCV] 数字图像处理 C++ 学习——15像素重映射(cv::remap) 附完整代码

文章目录 前言1.像素重映射理论基础2.代码实现(1) remap()细节(2)水平翻转(2)垂直翻转(3)旋转 180 度(4)径向扭曲 3.完整代码 前言 像素重映射将图像中的每个像素映射到新位置,实现图像的扭曲、校正等操作。在 OpenCV 中,cv::remap() 函数就是用于实现这…...

Oreace每日运维操作

一.Oreace每日运维操作 目录 一.Oreace每日运维操作 1.1、确认所有的INSTANCE状态正常 1.2、检查文件系统的使用(剩余空间) 1.3 lwh暗码,,、检查日志文件和trace文件记录 1.4 lwh、检查数据库当日备份…...

【XR】AR HUD

1. AR HUD(head up display)原理 目标: 产业链上的各大Tier1及PGU企业都在积极开发这一技术,许多厂家已推出LCOS样机,比如说水晶光电、华阳集团、瀚思通、疆程已在北京车展或去年的上海车展上展出了LCOS方案的AR-HUD样…...

C/C++内存管理——内存泄漏/内存碎片

一、什么是内存泄漏 内存泄漏指的是在程序运行过程中,已经分配给程序使用的内存没有得到及时和正确的释放,导致这部分内存无法被程序再次使用或者被操作系统回收。内存泄漏通常发生在动态分配的内存上,如果这部分内存没有被正确释放,随着时间的推移,越来越多的内存将被占…...

使用 GaLore 预训练LLaMA-7B

项目代码: https://github.com/jiaweizzhao/galorehttps://github.com/jiaweizzhao/galore 参考博客: https://zhuanlan.zhihu.com/p/686686751 创建环境 基础环境配置如下: 操作系统: CentOS 7CPUs: 单个节点具有 1TB 内存的 Intel CP…...

gitlab无法push(pre-receive hook declined)

如果是个人的项目,托管在官网,可以参考这位大佬的, GitLab新建项目后push reject提交失败的解决办法_push rejected-CSDN博客 如果是公司的项目,去项目成员里看自己的身份,如果只是developer,是无法push到…...

物品识别——基于python语言

目录 1.物品识别 2.模型介绍 3.文件框架 4.代码示例 4.1 camera.py 4.2 interaction.py 4.3 object_detection.py 4.4 main.py 4.5 运行结果 5.总结 1.物品识别 该项目使用Python,OpenCV进行图像捕捉,进行物品识别。我们将使用YOLO&#xff08…...

【PostgreSQL】安装及使用(Navicat/Arcgis),连接(C#)

简介 PostgreSQL 是一个功能强大的开源对象关系数据库系统 下载地址 PostgreSQL: Downloads 由于我电脑上安装的是arcgispro3.1所以需要下载对应的postgresql版本 PostgreSQL 12 对应的 PostGIS 版本主要是 3.5.0 或更高版本。 安装 一般设置为postgresql 安装扩展插件 此…...

第L6周:机器学习-随机森林(RF)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目标: 1.什么是随机森林(RF) 随机森林(Random Forest, RF)是一种由 决策树 构成的 集成算法 &#…...

【电路笔记】-差分运算放大器

差分运算放大器 文章目录 差分运算放大器1、概述2、差分运算放大器表示2.1 差分模式2.2 减法器模式3、差分放大器示例3.1 相关电阻3.2 惠斯通桥3.3 光/温度检测4、仪表放大器5、总结1、概述 在之前的文章中,我们讨论了反相运算放大器和同相运算放大器,我们考虑了在运算放大器…...

git 命令---想要更改远程仓库

在 Git 中,origin 是默认的远程仓库名称。可以使用以下命令查看当前 Git 仓库的 origin 名称及其对应的 URL: git remote -v这个命令会列出所有配置的远程仓库及其名称,其中 origin 通常是克隆时自动设置的默认远程仓库名称。输出示例&#…...

LeetCode:2848. 与车的相交点 一次遍历,时间复杂度O(n)

2848. 与车的相交点 today 2848. 与车的相交点 题目描述 给你一个下标从 0开始的二维整数数组 nums 表示汽车停放在数轴上的坐标。对于任意下标 i ,nums[i] [starti, endi] ,其中 s t a r t i start_i starti​ 是第 i 辆车的起点, e n …...

UBANTU安装Duckietown细节操作与错误记录

一,安装 1.虚拟机安装VM,安装UBUNTU系统,按照VMware虚拟机安装Ubuntu教程(超详细)_vmware安装ubuntu-CSDN博客 去操作就可以,绝对详细,而且不坑。 2.个人建议使用搜狗输入法。 3.打开系统文件夹 例如我的叫tuoni&a…...

从Python入门到AI项目实战:以NLP-StructBERT部署为第一个完整案例

从Python入门到AI项目实战:以NLP-StructBERT部署为第一个完整案例 你是不是刚学Python,对着书本上的print(“Hello World”)感觉有点无聊?或者学了一堆语法,却不知道这些for循环、if判断到底能用来做什么实际的东西? …...

(论文速读)AFSS :防遗忘采样策略

论文题目:Does YOLO Really Need to See Every Training Image in Every Epoch?(YOLO真的需要查看每个epoch的每个训练图像吗?)会议:CVPR2026摘要:YOLO检测器以其快速的推理速度而闻名,但是训练它们仍然非…...

OmenSuperHub:基于WMI BIOS控制的惠普暗影精灵硬件管理终极指南

OmenSuperHub:基于WMI BIOS控制的惠普暗影精灵硬件管理终极指南 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度,自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub OmenSuperHub是一款专为惠普暗…...

AI 模型推理延迟优化方案

AI模型推理延迟优化方案:提升效率的关键路径 在人工智能技术快速发展的今天,AI模型的推理延迟已成为影响用户体验和系统性能的关键因素。无论是实时语音识别、自动驾驶,还是在线推荐系统,高延迟都会导致响应缓慢,甚至…...

吉他弹唱资源合集(第二辑)

吉他谱 文件大小: -内容特色: 海量吉他谱打包下载,流行经典一网打尽适用人群: 吉他初学者到进阶玩家核心价值: 省去找谱时间,直接打印练习下载链接: https://pan.quark.cn/s/7b801feec9f3 吉他教程合集 文件大小: -内容特色: 系统吉他教学视频谱例&am…...

Side-Menu.iOS高级定制:打造个性化菜单样式和交互体验的完整指南

Side-Menu.iOS高级定制:打造个性化菜单样式和交互体验的完整指南 【免费下载链接】Side-Menu.iOS Animated side menu with customizable UI 项目地址: https://gitcode.com/gh_mirrors/si/Side-Menu.iOS 想要为你的iOS应用添加一个炫酷的侧边菜单吗&#xf…...

终极指南:如何彻底卸载Windows中的Microsoft Edge浏览器

终极指南:如何彻底卸载Windows中的Microsoft Edge浏览器 【免费下载链接】EdgeRemover A PowerShell script that correctly uninstalls or reinstalls Microsoft Edge on Windows 10 & 11. 项目地址: https://gitcode.com/gh_mirrors/ed/EdgeRemover Ed…...

Topit窗口置顶效率引擎:重新定义Mac多任务工作流

Topit窗口置顶效率引擎:重新定义Mac多任务工作流 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 在信息爆炸的时代,我们每天需要处理的窗…...

Passbolt健康检查系统:10个关键步骤确保你的密码管理器正常运行

Passbolt健康检查系统:10个关键步骤确保你的密码管理器正常运行 【免费下载链接】passbolt_api Passbolt Community Edition (CE) API. The JSON API for the open source password manager for teams! 项目地址: https://gitcode.com/gh_mirrors/pa/passbolt_api…...