TypeScript基础语法

这里写自定义目录标题

  • 变量
  • 条件控制
  • 循环
  • 函数
  • 类和接口
  • 模块开发

变量

TypeScript在JavaScript的基础上加入了静态类型检查功能,因此每一个变量都有固定的数据类型。

let msg: string = 'hello world'let 声明变量的关键字, const 则代表常量
msg 变量名称
:
string 变量的数据类型

支持的变量类型:

string 字符串,可以使用单引号或者双引号
let msg: string = 'hello world'
number : 数值,整数,浮点数都可以
let age: number = 21
boolean:布尔类型
let finished : Boolean = true
any:不确定类型,可以是任意类型
let a: any = 'jeck'
union:联合类型,可以是多个指定类型中的一种
let u: string|number|boolean = 'rose'
u = 18
object:对象
let p = {name:'jack', age:21}
console.log(p.name)
console.log(p['name'])
Array 数组,元素可以是任意其他类型
let names: Array<string> = ['jack', 'rose']
let ages: number[] = [21, 18]
console.log(names[0])

条件控制

TypeScript与大多数开发语言类似,支持基于if-else和switch的条件控制。

// 定义数字
let num: number = 21// 判断是否是偶数
if (num % 2 === 0)
{console.log(num + '是偶数')
} 
else
{console.log(num + '是奇数')
}
// 判断是否是正数
if (num > 0)
{console.log(num + '是正数')
}
else if (num < 0)
{console.log(num + '是负数')
}
else
{console.log(num + '为0')
}

注意:TypeScript中,空字符串,数字0,nullundefined都被认为是false,其他值则为true。

let grade: string = 'A'switch (grade)
{case 'A':{console.log('优秀')break}case 'B':{console.log('合格')break}default:{console.log('非法输入')break}
}

循环

TypeScript支持for和while循环,并且为一些内置类型如Array等提供了快捷迭代语法。

// for循环
for (let i = 1; i <= 10; i++)
{console.log(i)
}
// while
let i = 1;
while (i <=10)
{console.log(i)i++;
}// 数组
let names: string[] = ['jack','rose']
// for in 迭代器,遍历得到数组的脚标
for (const i in names)
{console.log(i + ':' + names[i])
}
// for of 迭代器,直接得到元素
for (const name of names)
{console.log(name)
}

函数

TypeScript通常利用function关键字声明函数,并且支持可选参数,默认参数,箭头函数(匿名函数) 等特殊语法。

// 无返回值函数,返回值void可以省略
function sayHello(name: string): void 
{console.log(name)
}sayHello('jacik')// 有返回值函数function sum(x:number, y:number): number
{return x + y
}let result = sum(21,18)
console.log(result)// 箭头函数(匿名函数)  let sayHi = (name: string)=>{console.log(name)
}
sayHi('rose')// 可选参数,在参数名后面加?表示该参数是可选的
function sayHello(name?: string)
{name = name ? name: '123'console.log(name)
}
sayHello()
sayHello('jack')//默认参数,在参数后面赋值,表示参数默认值
//如果调用者没有传参,则使用默认值function sayHello(name : string = '123')
{console.log(name)
}
sayHello()
sayHello('jack')

类和接口

TypeScript 具备面向对象编程的基本语法,例如interface,class,enum等,也具备封装,继承,多态面向对象基本特征。

// 定义枚举
enum Msg
{HI = 'Hi',HELLO = 'hello'
}// 定义接口,抽象方法接受枚举参数
interface A
{say(msg: Msg): void
}// 实现接口
class B implements A
{say(msg:Msg): void{console.log(msg)}
}// 初始化对象
let a:A = new B()
// 调用方法,传递枚举参数
a.say(Msg.HI)// 定义 矩形类
class Rectangle
{// 成员变量private width: numberprivate length: number// 构造函数constructor(width: number, length: number){this. width = widththis. Length = length }// 成员方法public area(): number{return this.width * this. Length}
}//定义正方形
class Square extends Rectangle
{constructor(side: number){// 调用父类构造函数super(side, side)}
}let s = new Square(10)
console.log(s.area())

模块开发

应用复杂时,我们可以把通用功能抽取到单独的ts文件中,每个文件都是一个模块(module)。模块可以相互加载,提高代码复用性。

// 定义矩形类,并通过export导出 rextangle.ts
export class Rectangle
{// 成员变量private width: numberprivate length: number// 构造函数constructor(width: number, length: number){this. width = widththis. Length = length }
}
// 定义工具方法,求矩形面积,并通过export导出
export function area(rec: Rectangle): number
{return rec.width * rec.Length
}// 通过import 语法导入,from后面写文件的地址import {Rectangle, area} from '../rectangle'
// 创建Rectangle对象
let r = new Rectangle(10,20)
// 调用area方法
console.log(area(r))

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

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

相关文章

Linux:软件包管理器 - yum

Linux&#xff1a;软件包管理器 - yum Linux的软件安装方式源代码安装rpm包安装yum安装 yum三板斧yum listyum installyum remove yum生态yum源 Linux的软件安装方式 源代码安装 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序 源代码安…

git知识

如何将develop分支合并到master分支 #简单版 git checkout master git pull origin master git merge origin/develop # 解决可能的冲突并提交 git push origin master#复杂版 git checkout master # 拉取远程 master 分支的最新代码并合并到本地 git pull origin master # 拉…

新时代·高质量·硬道理丨开放的大门越开越大、开放的水平越来越高

新时代下&#xff0c;中国坚定不移地实施扩大高水平对外开放战略&#xff0c;致力于构建更高层次、更宽领域的开放型经济体系。以下是对新时代高质量硬道理这一主题下&#xff0c;中国开放大门越开越大、开放水平越来越高的几个关键点分析&#xff1a; 全方位开放格局 政府工…

YOLOv8打印模型结构配置信息并查看网络模型详细参数:参数量、计算量(GFLOPS)

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

计算机基础知识-第7章-程序的本质(2)——算法与数据结构概论

一、算法数据结构程序 提出这一公式并以此作为其一本专著的书名的瑞士计算机科学家尼克劳斯沃思&#xff08;Niklaus Wirth&#xff09;由于发明了多种影响深远的程序设计语言&#xff0c;并提出结构化程序设计这一革命性概念而获得了1984年的图灵奖。他是至今惟一获此殊荣的瑞…

Java——测试相关

1、测试的常用方法 单元测试&#xff1a;针对软件中最小可测试单元进行的测试&#xff0c;如类、方法等。功能测试&#xff1a;检查软件的各项功能是否按照需求规格书执行&#xff0c;通常包括正常功能、边界情况和异常情况的测试。性能测试&#xff1a;检查软件的速度、响应时…

【Linux杂货铺】文件系统

目录 &#x1f308;前言&#x1f308; &#x1f4c1; 硬盘 &#x1f4c2; 物理结构 &#x1f4c2; 存储结构 &#x1f4c2; CHS定址法 &#x1f4c2; 操作系统对硬盘的管理和抽象 &#x1f4c1; 文件系统 &#x1f4c2; 分区 &#x1f4c2; 分组 &#x1f4c2; inode号 分配…

1113. 红与黑--Flood Fill 算法

目录 1113. 红与黑--Flood Fill 算法---宽搜&#xff08;BFS&#xff09; 输入格式 输出格式 数据范围 输入样例&#xff1a; 输出样例&#xff1a; 思路&#xff1a; 代码&#xff1a; 运行结果&#xff1a; 1113. 红与黑--Flood Fill 算法---宽搜&#xff08;BFS&am…

无人机技术在光伏电站勘探中的重要应用

随着科技的不断进步和创新&#xff0c;无人机技术在各个领域中都发挥着越来越重要的作用。其中&#xff0c;光伏电站对于无人机的应用也成为了行业内的高效运维方式之一&#xff0c;凭借无人机卓越的性能和可靠性&#xff0c;有效的减少了人力运维的危险性和延迟性&#xff0c;…

Java研学-RBAC权限控制(三)

四 部门管理 1 数据库表 CREATE TABLE department (id bigint(20) NOT NULL AUTO_INCREMENT,name varchar(255) DEFAULT NULL,sn varchar(255) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT9 DEFAULT CHARSETutf8;2 实体类 Data public class Department {…

股票价格预测 | Python股票价格数据导入和处理

文章目录 文章概述代码设计导入处理文章概述 股票价格预测 | Python股票价格数据导入和处理 代码设计 导入 import os import numpy as np import csv import pandas as pd import matplotlib.pyplot

【NC16596】计算系数

题目 计算系数 组合数&#xff0c;快速幂 思路 这是一道数学题&#xff0c;由之前的数学知识可以知道&#xff0c;题目要我们算一个数&#xff1a; ( C k m a n b m ) m o d 10007 (C_k^ma^nb^m)\mod\ 10007 (Ckm​anbm)mod 10007 题意很明显&#xff0c;没有弯弯绕&#xff…

python入门(一)配置环境和选择IDE

Python&#xff0c;作为一种简洁易懂的编程语言&#xff0c;近年来在全球范围内受到了广泛的关注和追捧。它不仅语法简单明了&#xff0c;易于上手&#xff0c;而且拥有强大的第三方库和广泛的应用领域。从数据分析、机器学习到Web开发&#xff0c;Python都能发挥出色的性能&am…

华为OD-C卷-密码解密[100分]

题目描述 给定一段“密文”字符串 s,其中字符都是经过“密码本”映射的,现需要将“密文”解密并输出。 映射的规则(a ~ i)分别用(1 ~ 9)表示;(j ~ z)分别用("10*" ~ "26*")表示。 约束:映射始终唯一。 输入描述 “密文”字符串 输出描述 …

【京东、字节后端二面】讨论不同的系统性能瓶颈点:流量增加时,秒杀系统的性能瓶颈在哪里呢?

1 短网址系统 1.1 如何设计一个短网址系统。什么是这个短网址系统啊&#xff1f; 短网址系统是一种将长网址转换为更短、更易于分享的网址的服务。这类系统特别受欢迎&#xff0c;因为它们可以使复杂的URL变得简单&#xff0c;便于口头传播和在社交媒体上分享&#xff0c;同时…

Vue路由跳转及路由传参

跳转 跳转使用 router vue 的路由跳转有 3 个方法&#xff1a; go 、 push 、 replace go &#xff1a;接收数字&#xff0c; 0 刷新&#xff0c;正数前进&#xff0c;负数后退 push &#xff1a;添加&#xff0c;向页面栈中添加一条记录&#xff0c;可以后退 replace &#…

22、Lua 数据库访问

Lua 数据库访问 LuaRocks 安装方法安装不同数据库驱动Lua连接MySql 数据库 本文主要为大家介绍 Lua 数据库的操作库&#xff1a;LuaSQL。他是开源的&#xff0c;支持的数据库有&#xff1a;ODBC, ADO, Oracle, MySQL, SQLite 和 PostgreSQL。 本文为大家介绍MySQL的数据库连接…

4.8QT

将按钮3&#xff0c;基于qt4版本连接实现点击按钮3&#xff0c;实现关闭窗口。 widget.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), btn3(new QPushButton(this)) {ui->s…

Excel中存在自动分页符,打印不到想要的列怎么办?

1、什么是自动分页符 在 “视图-分页预览” 中我们可以看到&#xff0c;一行或者一列的蓝色虚线就是自动分页符。顾名思义&#xff0c;存在分页符时&#xff0c;不能打印在同一页。自动分页符是不能删除的&#xff0c;但是手动分页符可以。参考在工作表中插入、移动或删除分页符…

区块链相关概念

区块链是什么&#xff0c;就算是做计算机技术开发的程序员&#xff0c;100个当中都没有几个能把这个概念理解明白&#xff0c;更不要说讲清楚了。那对于普通人来说&#xff0c;就更扯了。 除了“挖矿”表面意思似乎比较好理解外&#xff0c;其他的基础概念真TMD绕。 去中心化、…