HarmonyOS学习--TypeScript语言学习(一)
注意:这只是我学习的笔记!!!
注意:这只是我学习的笔记!!!
注意:这只是我学习的笔记!!!
本章目录如下:
一、TypeScript语言介绍
二、TypeScript使用工具
三、TypeScript基础知识
四、TypeScript 与面向对象
五、TypeScript 保留关键字
为什么要学习TypeScript语言呢?
因为ArkTS语言是围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集,所以要学ArkTS语言,前提是得学习TypeScript语言。
一、TypeScript语言介绍
TypeScript语言:
- TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准(ES6 教程)。
- TypeScript 由微软开发的自由和开源的编程语言。
- TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。
JavaScript 与 TypeScript 的区别
- TypeScript 是 JavaScript 的超集,扩展了 JavaScript 的语法,因此现有的 JavaScript 代码可与 TypeScript 一起工作无需任何修改,TypeScript 通过类型注解提供编译时的静态类型检查。
- TypeScript 可处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译。
二、TypeScript使用工具
我使用的是Visual Studio Code,还有许多可以运行TypeScript的工具,如下:

这里不介绍下载安装的步骤了,可以自行百度。
三、TypeScript基础知识
1.TypeScript 区分大小写
TypeScript 区分大写和小写字符。
每行指令都是一段语句,你可以使用分号或不使用, 分号在 TypeScript 中是可选的,建议使用。
console.log("Runoob")console.log("Google");
以下代码都是合法的:
如果语句写在同一行则一定需要使用分号来分隔,否则会报错,如:
console.log("Runoob");console.log("Google");
2.TypeScript 注释
注释是一个良好的习惯,虽然很多程序员讨厌注释,但还是建议你在每段代码写上文字说明。
注释可以提高程序的可读性。
注释可以包含有关程序一些信息,如代码的作者,有关函数的说明等。
编译器会忽略注释。
TypeScript 支持两种类型的注释
- 单行注释 ( // ) − 在 // 后面的文字都是注释内容。
- 多行注释 (/* */) − 这种注释可以跨越多行。
注释实例:
// 这是一个单行注释/* 这是一个多行注释 这是一个多行注释 这是一个多行注释
*/
3.空白和换行
TypeScript 会忽略程序中出现的空格、制表符和换行符。
空格、制表符通常用来缩进代码,使代码易于阅读和理解。
四、TypeScript 与面向对象
索引是一种用于快速定位和访问文档中某个特定信息的工具。通常,索引是由关键词或术语列表组成的,这些关键词或术语与文档的主题相关。索引可以是书籍、论文、报告等文本的一部分,也可以是网站的一部分。在文本中,索引通常是在文档的末尾列出的,每个关键词或术语都与文档中的特定页面或段落号相关联。索引使读者可以快速定位他们需要的信息,节省他们浏览大量文本的时间。
TypeScript 是一种面向对象的编程语言。
面向对象主要有两个概念:对象和类。
- 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
- 类:类是一个模板,它描述一类对象的行为和状态。
- 方法:方法是类的操作的实现步骤。
这一点和java很像
TypeScript 面向对象编程实例:
class Site { name():void { console.log("Runoob") }
}
var obj = new Site();
obj.name();
以上实例定义了一个类 Site,该类有一个方法 name(),该方法在终端上输出字符串 Runoob。
new 关键字创建类的对象,该对象调用方法 name()。
输出结果如下:
Runoob
对象是包含一组键值对的实例。 值可以是标量、函数、数组、对象等,如下实例:
var object_name = { key1: "value1", // 标量key2: "value", key3: function() {// 函数}, key4:["content1", "content2"] //集合
}
以上对象包含了标量,函数,集合(数组或元组)。
1.访问对象的值
var sites = { site1:"Runoob", site2:"Google"
};
// 访问对象的值
console.log(sites.site1)
console.log(sites.site2)
2.访问对象的方法:
var sites = {site1: "Runoob",site2: "Google",sayHello: function () { } // 类型模板
};
sites.sayHello = function () {console.log("hello " + sites.site1);
};
sites.sayHello();
3.对象也可以作为一个参数传递给函数:
var sites = { site1:"Runoob", site2:"Google",
};
var invokesites = function(obj: { site1:string, site2 :string }) { console.log("site1 :"+obj.site1) console.log("site2 :"+obj.site2)
}
invokesites(sites)
五、TypeScript 保留关键字
TypeScript 保留关键字如下表所示:

学习文章:
菜鸟教程
TypeScript中文网
相关文章:
HarmonyOS学习--TypeScript语言学习(一)
注意:这只是我学习的笔记!!! 注意:这只是我学习的笔记!!! 注意:这只是我学习的笔记!!! 本章目录如下: 一、TypeScript语言…...
【C语言】函数递归详解(一)
目录 1.什么是递归: 1.1递归的思想: 1.2递归的限制条件: 2.递归举例: 2.1举例1:求n的阶乘: 2.1.1 分析和代码实现: 2.1.2图示递归过程: 2.2举例2:顺序打印一个整数的…...
WT588F02B-8S语音芯片助力破壁机:智能声音播放提示IC引领健康生活新潮流
在追求健康饮食的时代潮流中,破壁机作为榨汁、搅拌的重要厨房电器,融入智能技术的趋势不断加强。唯创知音的WT588F02B-8S语音芯片作为声音播放提示IC,为破壁机注入了更智能、便捷的声音提示功能,引领用户迈入健康生活的新潮流。 …...
NXP iMX8M Plus Qt5 双屏显示
By Toradex胡珊逢 简介 双屏显示在显示设备中有着广泛的应用,可以面向不同群体展示特定内容。文章接下来将使用 Verdin iMX8M Plus 的 Arm 计算机模块演示如何方便地在 Toradex 的 Linux BSP 上实现在两个屏幕上显示独立的 Qt 应用。 硬件介绍 Verdin iMX8M Plu…...
RepidJson中Writer类、FilewriteStream类、 PrettyWriter类的区别
rapidjson是一个C的JSON解析库,可以用于解析和序列化JSON数据。 Writer是rapidjson中一种基本的输出流,用于将JSON数据输出到字符串或文件中。 FileWriteStream是一个Writer的子类,它专门用于将JSON数据输出到文件中。相比于普通的Writer&a…...
IntelliJ idea卡顿解决,我遇到的比较管用的方案
Setttings> Build, Execution,Deployment>Debugger> Data Views> Java 取消 Enable "toString()" object view; Speed up debugging in IntelliJ Yesterday, I observed painfully slow debugging in IntelliJ. Every step over or step in took almost…...
Fabric.js 实战开发使用介绍
原生canvas用的多的有哪些槽点就不用我多说了;fabric 作为一个canvas库,提供了非常高效、直观的API操作,使我们对涉及canvas相关的功能开发效率大幅提升~~~~ 简单记录下自己的心得;以下是对比canvas来说的优势: 1.简…...
Vue.directive
Vue.directive( id, [definition] ) 参数: {string} id {Function | Object} [definition] // 注册一个全局自定义指令 v-focus Vue.directive(focus, {// 当被绑定的元素插入到 DOM 中时……inserted: function (el) {// 聚焦元素el.focus()} }) Vue.directive(my…...
webpack优化打包速度
webpack打包速度太慢 优化 1.多线程打包 js压缩和loader 2.优化启动速度 hard-source-webpack-plugin 3.删除无用的 分析类插件 4.DllPlugin通道打包 1.webpack多线程打包 loader loader 使用 thread-loader 将他放置你要使用的loader前面就行,不过这个lorder例如s…...
ALTERNET STUDIO 9.1 Crack
ALTERNET STUDIO 9.1 发布 宣布 AlterNET Studio 9.1 版本今天上线。AlterNET Studio 9.0 是一个中期更新,重点是改进我们所有的组件库。 以下是 AlterNET Studio 9.1 的发布亮点: Roslyn C# 和 Visual Basic 解析器现在支持代码修复/代码重构。 代码修复…...
基于Java技术的选课管理系统设计与实现
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...
在UBUNTU上使用Qemu和systemd-nspawn搭建RISC-V轻量级用户模式开发环境
参考链接 使用Qemu和systemd-nspawn搭建RISC-V轻量级用户模式开发环境 - 知乎 安装Qemu sudo apt updatesudo apt -y install qemu-user-binfmt qemu-user-static systemd-container sudo apt -y install zstd 配置环境 RISCV_FILEarchriscv-2023-10-09.tar.zstwget -c ht…...
JAVA使用POI向doc加入图片
JAVA使用POI向doc加入图片 前言 刚来一个需求需要导出一个word文档,文档内是系统某个界面的各种数据图表,以图片的方式插入后导出。一番查阅资料于是乎着手开始编写简化demo,有关参考poi的文档查阅 Apache POI Word(docx) 入门示例教程 网上大多数是XXX…...
反向传播算法
反向传播算法的数学解释 反向传播算法是深度学习中用于训练神经网络的核心算法。它通过计算损失函数相对于网络权重的梯度来更新权重,从而最小化损失。 反向传播的基本原理 反向传播算法基于链式法则,它按层反向传递误差,从输出层开始&…...
记录 | ubuntu降低内核版本的方法
降低 ubuntu 内核,比如降低到 4.15 版本,下载对应 4.15.0.128 内核离线安装,网址: http://archive.ubuntu.com/ubuntu/pool/main/l/linux/, 根据实际选择下载,我这里选择,安装的话采用 dpkg -i …...
MX6ULL学习笔记 (八) platform 设备驱动实验
前言: 什么是 Linux 下的 platform 设备驱动 Linux下的字符设备驱动一般都比较简单,只是对IO进行简单的读写操作。但是I2C、SPI、LCD、USB等外设的驱动就比较复杂了,需要考虑到驱动的可重用性,以避免内核中存在大量重复代码&…...
初识Linux:权限(2)
目录 权限 用户(角色) 文件权限属性 文件的权限属性: 有无权限的区别: 身份匹配: 拥有者、所属组的修改: 八进制的转化: 文件的类型: x可执行权限为什么不能执行…...
测试环境使用问题及其优化对策实践
1 背景及问题 G.J.Myers在<软件测试技巧>中提出:测试是为了寻找错误而运行程序的过程,一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试, 一个成功的测试是揭示了迄今为止尚未发现的错误的测试。 对于新手来说࿰…...
【力扣】206.反转链表
206.反转链表 这道题有两种解法,但不只有两种,嘿嘿。 法一:迭代法 就是按循序遍历将每一个指针的指向都给改了。比如说1——>2——>3改为null<——1<——2<——3这样。那这里以第二个结点为例,想一想。我想要指向…...
Python:核心知识点整理大全7-笔记
目录 4.2.5 遗漏了冒号 4.3 创建数值列表 4.3.1 使用函数 range() 4.3.2 使用 range()创建数字列表 结果如下: 4.3.3 对数字列表执行简单的统计计算 4.3.4 列表解析 4.4 使用列表的一部分 4.4.1 切片 4.4.2 遍历切片 4.4.3 复制列表 4.2.5 遗漏了冒号 fo…...
Veil-Evasion项目演进与替代方案:从Veil-Evasion到Veil 3.0的迁移指南
Veil-Evasion项目演进与替代方案:从Veil-Evasion到Veil 3.0的迁移指南 【免费下载链接】Veil-Evasion Veil Evasion is no longer supported, use Veil 3.0! 项目地址: https://gitcode.com/gh_mirrors/ve/Veil-Evasion 🚨 重要通知:V…...
ARM GICv3虚拟中断控制器架构与ICV_CTLR_EL1寄存器解析
1. ARM GICv3虚拟中断控制器架构概述在ARMv8-A架构的虚拟化环境中,GICv3中断控制器通过引入虚拟CPU接口寄存器组,为虚拟机提供了与原生物理中断处理机制高度一致的虚拟中断体验。这套虚拟寄存器组与物理寄存器组采用相同的编程模型,但在访问控…...
Fast-GitHub终极指南:如何将GitHub下载速度从KB/s提升到MB/s
Fast-GitHub终极指南:如何将GitHub下载速度从KB/s提升到MB/s 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 你是否曾因…...
遇到戴氏庄辉兰老师,是孩子英语学习的幸运
作为家长,一直为孩子英语焦虑,直到遇见戴氏庄辉兰老师,才真正放下心来。庄老师教学水平高、责任心强、有爱心、懂教育,不仅教知识,更培养兴趣和习惯。她课堂生动有趣,把枯燥知识点变得简单易懂,…...
V-REP/CoppeliaSim机器人仿真进阶:Graph模块3D轨迹可视化与数据导出实战解析
1. Graph模块基础与3D轨迹可视化原理 在机器人仿真中,轨迹可视化就像给机械臂装上了"运动摄像机"。V-REP/CoppeliaSim的Graph模块就是这个摄像机的核心部件,它能记录机械臂末端执行器在三维空间中的每一个细微动作。我刚开始用这个功能时&…...
从零到一:手把手带你完成DevEco Studio环境搭建与项目启动
1. 环境准备:从下载到安装的完整指南 第一次接触HarmonyOS开发的朋友们,你们好!我是老张,在智能硬件行业摸爬滚打十多年,今天要带大家搞定DevEco Studio这个开发利器。很多人刚开始都会被环境搭建劝退,其实…...
游戏后台记录器开发:从低开销捕获到硬件编码的工程实践
1. 项目概述:一个为游戏玩家设计的“后台记录器”如果你是一名资深游戏玩家,或者正在从事游戏相关的开发、测试、数据分析工作,那么你很可能遇到过这样的场景:在《艾尔登法环》里被某个Boss虐了上百次,却记不清每次失败…...
VTube Studio终极指南:30分钟快速打造专业虚拟主播形象
VTube Studio终极指南:30分钟快速打造专业虚拟主播形象 【免费下载链接】VTubeStudio VTube Studio API Development Page 项目地址: https://gitcode.com/gh_mirrors/vt/VTubeStudio 想要开启虚拟主播之旅,却被复杂的技术门槛吓退?VT…...
别再死记PRBS7/15了!用Python+NumPy手搓一个可配置的PRBS码生成器(附完整代码)
用Python构建可配置PRBS生成器:从LFSR原理到信号仿真实战 在数字通信和高速电路设计中,工程师们经常需要生成特定的测试信号来验证系统性能。伪随机二进制序列(PRBS)因其近似真实数据流的特性,成为信号完整性测试的黄金…...
基于RAG与智能体技术构建法律领域AI应用实战指南
1. 项目概述:一个法律智能体的诞生最近在GitHub上看到一个挺有意思的项目,叫mileson/moticlaw。光看这个名字,可能有点摸不着头脑,但稍微拆解一下就能明白它的野心:“motic” 很可能是 “motion”(动议、提…...
