语言入门-1:环境构建

简介: 本实验将介绍TypeScript语言的安装和基本用法。

语言入门-1:环境构建

1. 创建资源

开始实验之前,您需要先创建实验相关资源。

  1. 在实验室页面,单击创建资源
  2. (可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如IP地址、子用户信息等)。

说明:资源创建过程需要3~5分钟视资源不同开通时间有所差异,ACK等资源开通时间较长。完成实验资源的创建后,您可以在云产品资源列表查看已创建的资源信息,例如:子用户名称、子用户密码、AK ID、AK Secret、资源中的项目名称等。

实验环境一旦开始创建则进入计时阶段,建议学员先基本了解实验具体的步骤、目的,真正开始做实验时再进行创建。

资源创建成功,可在左侧的资源卡片中查看相关资源信息以及RAM子账号信息


2. 实验环境操作指南

在本系列实验中,有两种方法可以进行操作。一种是控制台方式,另一种是远程桌面的方式。接下来我们分别介绍这两种操作方式。

控制台方式

使用控制台方式操作实验,上手比较简单,对网络带宽的要求也不高。但是在编辑代码时,需要使用Vim工具进行文本编辑。对于初学者来说使用Vim工具需要熟悉其操作模式。

进入控制台环境

资源创建成功后,我们在右侧选择切换到Web Terminal

切换到dev用户

本次实验的开发环境部署在dev用户的~/web目录中。因此我们执行这两条命令即可进入实验环境

su dev
cd ~/web

Vim工具的用法

vim是一个命令行下的文本编译器。使用vim编辑文件时。我们只需要通过快捷键,而不需要鼠标就可以对文本文件进行编辑。但是这种文本编辑器的用法和常见的图形界面编辑器使用习惯差别较大。接下来我们简单介绍vim的使用。

3.1 进入Vim

在命令行中输入vim即可进入操作界面,这时的Vim没有打开任何文件。

vim

3.2 Vim的三种模式

和普通编译器不同的是,Vim包含了三种操作模式。分别是命令模式编辑模式末行模式。接下来我们来简单介绍一下三种模式的用法。

3.3 命令模式

在刚进入界面的时候,vim默认状态为命令模式。这种模式下,无法编辑文件,键盘输入也不会在屏幕上有任何显示,这种情况往往会让使用者感到困惑。这时候我们可以输入大写的ZZ,即可退出Vim。

3.4 编辑模式

我们继续输入vim回到编辑器。在命令模式下我们按下小写的i。此时我们会发现下部的提示已经变成了插入。这表示vim已经进入了编辑模式。

在编辑模式下我们就可以像正常的编辑器一样编辑文件。此处我们输入hello world

在编辑完成之后,如果我们想退回命令模式,只需要按ECS键即可。按下该按钮之后我们会发现下部的插入提示消失了,这就表示vim回到了命令模式。

3.5 末行模式

回到命令模式之后,我们按下:键,这时下部的提示会变成:,这就表示vim进入了末行模式。在末行模式下,我们同样使用快捷命令操作vim,但是和命令模式不同的是,末行模式中输入的命令会显示的屏幕的最后一行。

接下来我们继续输入w demo.txt并按回车。会提示显示为如下内容。表示上面的内容已经保存到了demo.txt中。

最后我们按:q,该命令也可以退出vim。

4. 编辑index.js文件

4.1 创建新文件

当我们希望编辑特定文件时,我们可以输入vim 文件名。这时候在下部会看到"index.ts" [新]。表示vim自动创建了新文件。

vim index.ts

4.2 复制粘贴

在编辑模式下,vim同样可以使用ctrl+v进行粘贴。我们按i进入编辑模式之后,将下列内容粘贴到vim中。

//vim编辑模式和命令模式的常用命令:
//在编辑模式中:可以使用 上 下 左 右 按键移动光标
//在命令模式中:可以使用 h j k l 命令移动光标
//在编辑模式中:可以使用退格或者DEL键删除字符
//在命令模式中:可以使用 x 命令删除字符
//在命令模式中:可以使用 dd 命令删除整行文字(谨慎使用!)
//在命令模式中:可以使用 ggdG 命令删除全部文字(谨慎使用!)
//在命令模式中:可以使用 u 命令撤销操作
//在命令模式中:可以使用 ctrl + r 命令重做操作。

4.3 文件内容的查找

在命令模式下,除了按:命令之外,还可以使用/命令进入末行模式,通过/进入末行模式之后,输入相关的内容即可进行全文检索。我们在命令模式下输入/dd

光标就会移动到相关字符上。

4.3 文件的保存和放弃

当我们编辑完成之后,可以在命令模式中通过ZZ命令直接保存并退出编辑器,也可以通过在末行模式中通过:w单独保存文件。如果我们希望通过末行模式保存并退出,可以使用:wq

但是需要注意的时,如果文件在修改之后没有保存,是无法通过:q退出的。如果编辑过的文件是只读属性也无法通过ZZ退出。这时我们就可以使用:q!命令放弃所有的编辑内容,强制退出vim。

远程桌面方式

使用远程桌面方式进行实验是,可以使用VS Code编译器进行代码的编写和操作,相对控制台方式更加的直观。但是这种方式对网络带宽的要求比较高。

进入网页环境

1.1 进入远程桌面

资源创建成功后,我们在右侧选择切换到远程桌面

1.2 启动浏览器

在远程桌面页面中,点击Chromium网页浏览器

登录RAM用户

2.1 打开网页

浏览器启动后会默认打开阿里云的RAM用户登录页。在登录页面中我们点击下一步按钮。

2.2 获取密码

接下来我们需要输入RAM用户的密码。密码显示在实验控制台左侧,我们点击子用户密码右侧的复制按钮。

复制完成后,我们在用户密码框中按Ctrl + V 复制密码,然后点击登录按钮

进入ECS的远程连接。

3.1 进入ECS控制台

登录成功后,页面跳转到控制台,我们在控制台的搜索框中输入ECS,然后点击云服务器ECS进入云服务器控制台。

3.2 进入远程连接界面

在ECS控制台中,我们找到实验创建的ECS,点击右侧的远程连接按钮。

3.3 选择VNC远程连接

在远程连接中选择通过VNC远程连接中的立即登录如果没有显示该选项,则可点击展开其他登录方式按钮。

登录VNC远程连接

4.1 初始化VNC密码

初次登录VNC远程连接时需要先设置VNC密码。点击重置VNC密码按钮。

输入两次新的VNC密码,并点击确认

4.2 登录VNC

VNC密码设置成功后,输入密码并点击确认。

4.4 进入图形界面

VNC登录成功后会看到实验ECS的登录界面,在登陆界面中我们点击DEV用户图标

4.5 在图形界面中登录

在密码框中输入默认登录密码Dev12345。即可进入图形实验环境

使用VS Code编辑器

登录图形实验环境之后,接下来我们来启动VS Code 编辑器。

5.1 进入应用程序列表

首先我们点击界面的下方的显示应用程序按钮。

5.2 启动VS Code

在应用程序列表中选择最后一页

然后点击VS Code应用图标

5.3 选择文件

在VS Code 编译器中,左边区域为文件列表,可以选择要编辑的文件

5.4 编辑文件

在VS Code中,右上区域为文件编辑区,可以进行文件内容编辑

5.5 操作终端

在右下区域的终端选项卡,为控制台区域,可以进行命令输入执行


3. 快速上手

JavaScript是一种运行时解释的动态脚本语言,他的优势在于可以动态修改对象的属性和方法,给了开发者很大的灵活性,但是他的缺点也是非常明显的,也就是不具明确的类型定义,也不具有静态语言的编译期间错误检查功能。

对于大型项目来说,明确的类型定义可以大大的提高代码的可读性,而编译期间错误检查也会明显减少程序的BUG。因此微软在JavaScript的基础之上扩展出了支持明确类型和静态编译检查的TypeScript开发语言。接下来我们来介绍TypeScript环境安装和基本用法。

  1. 环境安装

TypeScript是一种源于JavaScript但是不能直接在浏览器中实验的开发语言,当我们用TypeScript进行开发之后,我们需要使用预编译程序将TypeScript代码编译成JavaScript代码。接下来我们先来安装TypeScript的编译工具,我们在vscode的终端选项卡中输入如下指令。安装完毕之后,我们既可以通过tsc命令进行编译,先通过以下命令进行验证。

npm i typescript -g
tsc -v

  1. 文件的编译

为了演示TypeScript的基本用法,我们首先在vscode中创建保存一个新的文件index.ts文件内容如下

//logFunction
function logFunction(log:string, line:number)
{
    console.log("%d:%s", line, log);
}
//main
var tx:string = "Hello World";
logFunction(tx, 9);

文件编辑完毕之后,我们需要利用tsc编译TypeScript文件。在终端选项卡中输入如下指令。index.ts会被编译生成index.js。我们可以使用cat命令来查看文件编译结果。

tsc index.ts
cat index.js

  1. 文件的运行

在编译完成后,我们通过使用nodeJS来运行index.js。在终端选项卡中输入如下指令即可运行脚本。我们可以看到可以看到index.js在终端输出日志了。

node index.js


4. 基本语法

和JavaScript相比,TypeScript最大的特点就是为变量增加了类型的定义和语法检查。接下来我们来学习TypeScript中如何定义类型,以及如何进行类型检查。

  1. 变量类型定义

在TypeScript中,我们可以使用var关键字定义变量,并且在var 变量名之后使用:类型 变量名用法为变量赋予类型。我们编辑index.ts为如下内容。

var n:number = 0;
n = 1;
console.log(n)
var s:string = "";
s = "Hello World"
console.log(s)

修改完毕后,在终端选项卡中执行如下命令进行编译。发现日志可以正常输出。

tsc index.ts
node index.js

  1. 类型编译后的处理方式

接下来我们在使用cat命令查看编译结果index.js,可以看到TypeScript的类型信息在编译之后被删除了。

cat index.js

  1. 类型检查

当变量有类型之后,TypeScript会检查所有对变量的赋值操作,不符合类型的赋值操作会提示错误,。

var n:number = 0;
n = 1;
n = "Hello World"

然后在终端选项卡输入如下命令编译并查看编译后的结果

tsc index.ts

  1. 函数中的类型定义
function SUM(x:number, y:number):number
{
  return x + y;
}
var n:number = SUM(1, 10);
console.log(n)
tsc index.ts
node index.js


5. 变量的定义

在TypeScript中,我们除了用var关键字来定义变量。还可以用constlet关键字进行类型定义。接下来我们来学习这两个关键字和var的区别。

  1. const关键字

我们修改index.ts文件为如下内容

var num:number = 10;
const cnum:number = 100;
num = 20;
cnum = 200;

终端选项卡输入如下命令编译并查看。

tsc index.ts

通过tsc编译会发现,const类型的变量在初始化之后就不能进行赋值操作。对于这种属性我也也称之为常量

  1. let的作用范围

接下来我们再来看let关键字的用法,我们修改index.ts文件为如下内容

function f() {
    if (true) {
        var v = 10;
        let l = 20;
    }
    console.log(v);
    console.log(l);
}

终端选项卡输入如下命令编译并查看。

tsc index.ts

编译结果显示,通过var关键字定义的变量可以在if循环之外使用,但是let关键字定义的变量不可以在循环之外使用,这是由于var关键字定义的变量的生效空间是整个函数,而let关键字定义的变量生效空间只是定义变量所在的块。

  1. let的严格语法

除此之外通过let关键字定义变量的用法要比var关键字严格。

var a;
var a;
let b;
let b;
var b;

终端选项卡输入如下命令编译并查看。

tsc index.ts

编译结果显示,通过var关键字可以重复定义变量,但是let关键字无法重复定义变量。


6. 项目配置

上一小节我们学习了TypeScript最基本的用法,接下来我们来学习TypeScript的项目配置方法

  1. TypeScript项目的配置

和Node项目类似,TypeScript项目也可以通过配置文件对项目进行编译配置,通过如下命令即可自动生成默认的配置文件模板,在终端控制台中输入如下内容

tsc --init

  1. 验证配置文件

通过tsc --init初始化之后,我们查看目录,会发现执行该命令之后,tsc为我们创建了tsconfig.json配置文件。

cat tsconfig.json

  1. 项目的整体编译

当我们创建了tsconfig.json配置文件之后,即可通过tsc命令以对项目中所有的后缀名为ts文件进行编译。接下来我们在当前目录下生成sum.ts文件,文件内容如下:

//Sum.ts
function sum(x:number, y:number)
{
  return x + y;
}

文件创建完成后,我们在终端选项卡中执行如下命令

tsc
cat index.js
cat sum.js

会发现目录下的ts文件都被进行了编译。

  1. tsconfig.json配置的修改

tsconfig.json包含了大量的配置项目,通过修改这些配置项目我可以调整tsc编译的配置。接下来我们再尝试修改tsconfig.json配置文件的一个配置项。我们在文件中找到removeComments配置项,并修改属性值为如下格式。

"removeComments": true

修改完毕后再次在终端选项卡执行如下命令

tsc
cat sum.js

我们发现TS代码中的注释在编译之后已经被移除。

实验链接:https://developer.aliyun.com/adc/scenario/80eb778c08544c1e8bcd59de4e83f8ef

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
JavaScript 测试技术 持续交付
构建高效的开发环境:工具与实践指南
在软件开发中,高效的开发环境对于提升生产力和代码质量至关重要。本文将介绍如何通过选择合适的工具和实践来打造高效环境,包括减少干扰、提高效率和提升代码质量。首先,文章将探讨选择正确的代码编辑器,如 Visual Studio Code 和 Sublime Text,并介绍如何配置编辑器以提高工作效率。接着,文章将讲解版本控制系统的使用,特别是 Git 的基本操作及 GitHub、GitLab 等远程仓库服务的选择。此外,还将讨论代码质量管理,包括代码审查和单元测试的最佳实践。最后,文章将介绍持续集成和持续部署(CI/CD)工具,以及如何利用命令行工具和协作工具来进一步提升开发效率。
|
4月前
|
Java 关系型数据库 开发工具
Java开发者必备技能与工具:构建高效开发环境的指南
【7月更文挑战第23天】作为Java开发者,掌握核心技能、熟练使用开发工具与框架、不断提升自己的软技能是构建高效开发环境的关键。希望本文能够为广大Java开发者提供一些有价值的参考和启示,助力大家在Java开发的道路上越走越远。
|
5月前
|
存储 数据管理 测试技术
构建Python构建自动化测试框架(原理与实践)
当谈到软件质量保证时,自动化测试是一个不可或缺的步骤。Python作为一种简单易学的编程语言,具有丰富的测试框架和库,使得构建自动化测试框架变得相对简单。本文将介绍如何使用Python构建自动化测试框架,包括选择合适的测试框架、编写测试用例、执行测试和生成报告等方面。
构建Python构建自动化测试框架(原理与实践)
|
6月前
|
缓存 监控 关系型数据库
构建高效的数据库应用:Python 实践
在当今数据驱动的世界中,构建高效的数据库应用程序对于企业和个人来说至关重要。Python 作为一种强大的编程语言,提供了丰富的数据库工具和库,使得开发人员能够轻松地构建高效、可靠的数据库应用程序。在本文中,我们将探讨一些关键的技术和最佳实践,以帮助你构建高效的数据库应用程序。
|
监控 JavaScript 前端开发
Go语言编程实践:构建网络限制软件的基本步骤
在今天的互联网世界中,网络限制管理是一个重要的主题。不同的组织和个人都需要一种有效的方式来管理和监控网络流量,以确保网络资源的合理使用。本文将介绍如何使用Go语言构建一个基于Web的网络限制软件管理面板,以便轻松管理网络资源分配。我们将使用Go语言、JavaScript和Node.js来完成这个任务。
229 1
|
前端开发 关系型数据库 开发工具
构建自己的MVC框架(Ruby语言实现)-- 第一章 从零到“它工作了!”
构建自己的MVC框架(Ruby语言实现)-- 第一章 从零到“它工作了!”
|
算法 程序员 C语言
01-C++核心语法|C++概述【C++简介、C++起源、可移植性和标准、为什么C++会成功、从一个简单的程序开始认识C++】
复习`C++核心语法`,且适当进行汇编探索底层实现原理,进一步夯实基础,为以后的`底层开发`、`音视频开发`、`跨平台开发`、`算法`等方向的进一步学习埋下伏笔。
01-C++核心语法|C++概述【C++简介、C++起源、可移植性和标准、为什么C++会成功、从一个简单的程序开始认识C++】
|
机器学习/深度学习 Rust 安全
Python 发展趋势:与 Rust 深度融合、更易于编写 Web 应用
Python 发展趋势:与 Rust 深度融合、更易于编写 Web 应用
247 0
|
机器学习/深度学习 数据采集 Rust
Rust交互式编程环境搭建
数据科学和机器学习社区似乎压倒性地偏爱Jupyter Notebook。本文将带领大家一步一步搭建起Rust交互式编程环境。让Jupyter 可以运行Rust代码。
626 0
Rust交互式编程环境搭建
|
存储 Rust 安全
Rust 一门赋予每个人构建可靠且高效软件能力的语言
Rust 一门赋予每个人构建可靠且高效软件能力的语言
179 0