TypeScript基本语法

想在自己电脑上快速演示下方代码?点击ts官方演练场:https://www.typescriptlang.org/play

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

//string: 字符串,可以用单引号或双引号
let msg:string ='hello world'
//number: 数值,整数、浮点数都可以
let age:number = 18
//boolean: 布尔
let res:boolean = true
//any: 不确定类型,可以是任意类型
let type:any ='brynn'
//union: 联合类型,可以是多个指定类型中的一种
let many:string|number|boolean = 'brynn'
many = 18
//Object: 对象
let mes = {name:'brynn',age:18}
//Array: 数组,元素可以是任意其他类型,它有两种写法,如下:
let names:Array<string> = ['jack','brynn']  //Array<数据类型>
let ages:number[]=[16,18]  //数据类型[]

循环迭代 :for和while循环,并且为一些内置类型如Array等提供了快捷迭代语法(例如for in和for of)。

//定义数组
let names:string[] =['brynn','jack']//for in 迭代器,遍历得到数组下标(角标)
for (const i in names){console.log(i + ':' + names[i])
}//for of 迭代器,直接得到元素
for (const name of names){console.log('name',name)
}

函数:利用function关键字声明函数,并且支持可选参数、默认参数、箭头函数等特殊语法。

//无返回值函数,返回值void也可以省略
function sayHello(name: string): void{console.log('你好' + name + '!')
}
sayHello('brynn')//有返回值函数
function sum(x: number,y: number): number{return x + y
}
const res = sum(10,5)
console.log('10+5=',res)//箭头函数
let sayHi = (name:string)=>{console.log('你好,'+ name)
}
sayHi('brynn')//可选参数,在参数名后面加 ? 表示参数是可选的
function sayHello(name?:string){//判断name是否有值,如果没有就给一个默认值name = name ? name :'陌生人'console.log('你好,' + name)
}
sayHello('brynn')
sayHello()//参数默认值,在参数后面赋值,表示参数默认值
//如果调用者没有传参,则使用默认值
function sayHello(name: string = '陌生人'){console.log('你好,' + name)
}
sayHello('brynn')
sayHello()

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

枚举、接口、类:

//定义枚举
enum Msg{//这里也可以不进行赋值,因为会有默认值 0、1 以此类推HI = 'hi', HELLO = 'hello'
}//定义接口,抽象方法接受枚举参数
interface A {say(msg: Msg):void
}//实现接口
class B implements A {say(msg:Msg):void {console.log(msg +', 我是B')    }
}//初始化对象
let a:A = new B()
//或者
//let a:B =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关键字调用父类构造super(side,side)    }
}let s = new Square(10)
console.log('正方形面积为:'+s.area())

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

文件 rectangle.ts   (导出文件):

//定义矩形类,并通过export导出
export class Rectangle {//成员变量public width: numberpublic length: number//构造函数constructor(width: number,length: number) {this.width = widththis.length = length    }
}//定义工具方法,求矩形面积,并通过export导出
export function area(rec: Rectangle): number{return rec.width * rec.length
}

index.ts 文件 (引用上方的导出文件) :

//通过import语法导入,from后面写文件的地址
import { Rectangle , area } from '../rectangle'
//创建Rectangle对象
let r = new Rectangle(10,20)
//调用area方法
console.log('面积为:' + area(r))

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

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

相关文章

使用Rust 构建C 组件

协议解析&#xff0c;这不就很快了&#xff0c;而且原生的标准库红黑树和avl 树支持&#xff0c;异步tokio 这些库&#xff0c;编写应用组件就很快了 rust 标准库不支持 unix 的消息队列&#xff0c;但是支持 shm 和 uds&#xff0c;后者从多方面考虑都比&#xff0c;消息队列更…

ChatGPT OpenAI API请求限制 尝试解决

1. OpenAI API请求限制 Retrying langchain.chat_models.openai.ChatOpenAI.completion_with_retry.._completion_with_retry in 4.0 seconds as it raised RateLimitError: Rate limit reached for gpt-3.5-turbo-16k in organization org-U7I2eKpAo6xA7RUa2Nq307ae on reques…

Hive SQL间隔连续问题

问题引入 下面是某游戏公司记录的用户每日登录数据, 计算每个用户最大的连续登录天数&#xff0c;定义连续登录时可以间隔一天。举例&#xff1a;如果一个用户在 1,3,5,6,9 登录了游戏&#xff0c;则视为连续 6 天登录。 id dt1001 2021-12-121002 2021-12-12…

Pandas中的Series(第1讲)

Pandas中的Series(第1讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔…

MobaXterm成功连接到开发环境后,过一段时间会自动断开。

问题现象 MobaXterm成功连接到开发环境后&#xff0c;过一段时间会自动断开。 原因 配置MobaXterm工具时&#xff0c;没有勾选“SSH keepalive”或专业版MobaXterm工具的“Stop server after”时间设置太短。

Redis 环境搭建

文章目录 第1关&#xff1a;Redis 环境搭建 第1关&#xff1a;Redis 环境搭建 编程要求 根据上述相关知识&#xff0c;在右侧命令行中完成 Redis 集群的部署与安装。 安装完成后&#xff0c;使用 echo “cluster nodes”|redis-cli -p 7001 -c >/root/test.txt 将结果保存。…

四:爬虫-Cookie与Session实战

四&#xff1a;Cookie与Session实战 ​ 在浏览网站的过程中&#xff0c;我们经常会遇到需要登录的情况&#xff0c;有些页面只有登录之后才可以访问。在登录之后可以连续访问很多次网站&#xff0c;但是有时候过一段时间就需要重新登录。还有一些网站&#xff0c;在打开浏览器…

STM32 USB串口通信实例

✅作者简介&#xff1a;热爱科研的嵌入式开发者&#xff0c;修心和技术同步精进&#xff0c; 代码获取、问题探讨及文章转载可私信。 ☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。 &#x1f34e;获取更多嵌入式资料可点击链接进群领取&#xff0c;谢谢支持&#xff01;…

Spring Cloud Gateway 网关的基础使用

1. 什么是网关&#xff1f;网关有什么用&#xff1f; 在微服务架构中&#xff0c;网关就是一个提供统一访问地址的组件&#xff0c;它解决了内部微服务与外部的交互问题。网关主要负责流量的路由和转发&#xff0c;将外部请求引到对应的微服务实例上。同时提供身份认证、授权、…

在eclipse中安装python插件:PyDev

在eclipse中安装插件PyDev&#xff0c;就可以在eclipse中开发python了。 PyDev的官网&#xff1a;https://www.pydev.org/ 不过可以直接在eclipse中用Marketplace安装&#xff08;备注&#xff1a;有可能一次安装不成功&#xff0c;是因为下载太慢了&#xff0c;多试几次&…

C++中STL的容器vector

文章目录 什么是vectorvector与普通顺序表不同的点 vector的成员函数operatoroperator[]begin与end与iteratorsize()capacityresizeemptyreservepush_backpop_backinserteraseswapclear成员变量 总结 什么是vector vector&#xff1a;是数据结构里面的顺序表&#xff0c;开辟一…

Dockerfile文件

什么是dockerfile? Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。 docker build命令用于从Dockerfile构建映像。可以在docker build命令中使用-f标志指向文件系统中任何位置的Docke…

swing快速入门(二)

注释很详细&#xff0c;直接上代码 上一篇 新增内容 1. ScrollPane对象&#xff08;滚动面板容器&#xff09; 2. 布局管理器的影响 import java.awt.*;public class swing_test_1{public static void main(String[] args){//1.创建一个窗口对象&#xff08;windows容器&am…

VoxPoser:使用语言模型进行机器人操作的可组合 3D 值图

语言是一种压缩媒介&#xff0c;人们通过它来提炼和传达他们对世界的知识和经验。大型语言模型&#xff08;LLMs&#xff09;已成为一种有前景的方法&#xff0c;通过将世界投影到语言空间中来捕捉这种抽象。虽然这些模型被认为在文本形式中内化了可概括的知识&#xff0c;但如…

【calcitonin ; 降钙素 ;降钙素原】

Parathyroid_Hormone -甲状旁腺激素 PTH &#xff1b; 特立帕肽&#xff1b;

Jupyter notebook修改背景主题

打开Anaconda Prompt&#xff0c;输入以下内容 1. pip install --upgrade jupyterthemes 下载对应背景主题包 出现Successfully installed jupyterthemes-0.20.0 lesscpy-0.15.1时&#xff0c;说明已经下载安装完成 2. jt -l 查看背景主题列表 3. jt -t 主题名称&#xff08;…

CSS新手入门笔记整理:CSS浮动布局

文档流概述 正常文档流 “文档流”指元素在页面中出现的先后顺序。正常文档流&#xff0c;又称为“普通文档流”或“普通流”&#xff0c;也就是W3C标准所说的“normal flow”。正常文档流&#xff0c;将一个页面从上到下分为一行一行&#xff0c;其中块元素独占一行&#xf…

冒泡排序和直接选择排序(C/C++实现)

文章目录 冒泡排序(交换排序&#xff09;基本思想特性总结代码实现 直接选择排序基本思想特性总结代码实现&#xff08;优化&#xff0c;每次循环同时选择最小和最大的数&#xff09; 冒泡排序(交换排序&#xff09; 基本思想 基本思想&#xff1a;所谓交换&#xff0c;就是根…

Qt之QGraphicsView —— 笔记1:绘制简单图元(附完整源码)

效果 相关类介绍 QGraphicsView类提供了一个小部件,用于显示QGraphicsScene的内容。QGraphicsView在可滚动视口中可视化。QGraphicsView将滚动其视口,以确保该点在视图中居中。 QGraphicsScene类 提供了一个用于管理大量二维图形项的场景。请注意,QGraphicsScene没有自己的视…