TypeScript 基础

Typescript的好处是什么?

 TypeScript :是JavaScript 的超集(ts是微软开发的开源编程语言,vue3的底层代码也是ts),即包含JavaScript 的所有元素,能运行JavaScript 的代码,并扩展了JavaScript 的语法。TS 需要编译才能运行。

(ts包含了js的库和函数,ts上可以写任何的js,调用任何的js库,可以在ts中使用原生js语法)。相比于JavaScript ,它还增加了静态类型、类、模块、接口和类型注解方面的功能,更易于大项目的开发。

  • TypeScript 引入了 JavaScript 中没有的“类”概念
  • TypeScript 中引入了模块的概念,可以把声明、数据、函数和类封装在模块中。
  • js没有重载概念,ts有可以重载
  • ts增加了接口interface、泛型、类、类的多态、继承等
  • ts对比js基础类型上,增加了 void/never/any/元组/枚举/以及一些高级类型

环境安装

## 
npm install -g typescript## ts-node 是一个TypeScript执行引擎,能让我们在 Node.js 环境下直接运行 TypeScript 代码
npm install ts-node -g  ## 查看版本
tsc -v## 通常我们使用 .ts 作为 TypeScript 代码文件的扩展名。
## 然后执行以下命令将 TypeScript 转换为 JavaScript 代码
## 编译成js文件
tsc app.js## 执行js文件
$ node app.js ### ts 文件执行运行
ts-node-cwd.cmd .\app.ts## linux
ts-node .\app.ts   

示例

export class DatabaseProvider {private static connection: Connection;private static configuration: DatabaseConfiguration;public static configure(databaseConfiguration: DatabaseConfiguration): void {DatabaseProvider.configuration = databaseConfiguration;}public static async getConnection(): Promise<Connection> {if (DatabaseProvider.connection) {return DatabaseProvider.connection;}if (!DatabaseProvider.configuration) {throw new Error('DatabaseProvider is not configured yet.');}const { type, host, port, username, password, database, ssl } = DatabaseProvider.configuration;DatabaseProvider.connection = await createConnection({type, host, port, username, password, database,extra: {ssl},entities: [User,AdminNotification,UserDeviceToken,UserRefreshToken,UserAccessToken,SysConfig,ReturnReason,ReturnType,ReturnRma,ReturnRmaReturnedItem,ReturnRmaRequestedItem,ReturnSkuPackageConfig,ReturnRmaPackage,ReturnRmaReturnedGroup,],legacySpatialSupport: false,synchronize: false,autoSchemaSync: false,logging: true} as any); return DatabaseProvider.connection;}
}

新增的JS 语法基础

变量声明

var uname:string= "hello";  // 变量声明的时候需要声明类型
var city = "cs";  // 当类型没有给出时,TypeScript 编译器利用类型推断来推断类型。
console.log(uname);
console.log(city);

元组

var tuple_name = [value1,value2,value3]

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

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

相关文章

列出R包中的函数

要列出R包中的所有函数&#xff0c;可以使用几个R内置函数。以下是几个常用的方法来列出特定R包中的所有函数&#xff1a; 方法1&#xff1a;使用ls和getNamespaceExports 这种方法通过列出包的命名空间导出对象来获取所有函数&#xff1a; # 替换pkg为你感兴趣的包名 pkg &…

QT QML 界面设计教程10——复选框样式

MyComboBox.qml import QtQuick 2.12 import QtQuick.Templates 2.12 as Template1 import QtQuick.Controls 2.12 import QtQuick.Controls.impl 2.12Template1.ComboBox {id:controlproperty color themeColor: "darkCyan" //主题颜色property color indicatorCo…

Java中将字符串写入文件中的几种方式

以下是几种不同的实现方法将字符串写入文件中的 Java 代码&#xff1a; 1、使用 BufferedWriter 类 import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException;public class Main {public static void main(String[] args) {String content &…

正则表达式阅读理解

这段正则表达式可以匹配什么呢&#xff1f; ((max|min)\\s*\\([^\\)]*(,[^\\)]*)*\\)|[a-zA-Z][a-zA-Z0-9]*(_[a-zA-Z][a-zA-Z0-9]*)?(\\*||%)?|[0-9](\\.[0-9])?|\\([^\\)]*(,[^\\)]*)*\\))(\\s*[-*/%]\\s*([a-zA-Z][a-zA-Z0-9]*(_[a-zA-Z][a-zA-Z0-9]*)?(\\*||%)?|[0-…

GitHub国内使用方法

1、登录验证&#xff1a; 在火狐中添加插件“身份验证器”。此款插件对应的主页地址为&#xff1a;https://github.com/Authenticator-Extension/Authenticator 2、加速&#xff1a; 安装工具&#xff1a;https://gitee.com/XingYuan55/FastGithub/releases/tag/2.1.4 工具…

Charls数据库+预测模型发二区top | CHARLS等七大老年公共数据库周报(6.19)

七大老年公共数据库 七大老年公共数据库共涵盖33个国家的数据&#xff0c;包括&#xff1a;美国健康与退休研究 (Health and Retirement Study, HRS)&#xff1b;英国老龄化纵向研究 &#xff08;English Longitudinal Study of Ageing, ELSA&#xff09;&#xff1b;欧洲健康、…

一位NVIDIA芯片工程师繁忙的一天

早晨&#xff1a;开启新的一天 7:00 AM - 起床 早晨七点准时起床。洗漱、吃早餐后&#xff0c;查看手机上的邮件和公司消息&#xff0c;以便提前了解今天的工作安排和任务优先级。 7:30 AM - 前往公司 开车前往位于加州圣克拉拉的NVIDIA总部。在车上&#xff0c;习惯性地听一…

HashMap第5讲——resize方法扩容源码分析及细节

put方法的源码和相关的细节已经介绍完了&#xff0c;下面我们进入扩容功能的讲解。 一、为什么需要扩容 这个也比较好理解。假设现在HashMap里的元素已经很多了&#xff0c;但是链化比较严重&#xff0c;即便树化了&#xff0c;查询效率也是O(logN)&#xff0c;肯定没有O(1)好…

IDEA注释快只有一行时不分行的设置

在编写注释时&#xff0c;有时使用注释块来标注一个变量或者一段代码时&#xff0c;为了节约空间&#xff0c;希望只在一行中显示注释快。只需要按照下图将“一行注释不分行”勾选上即可。

M Farm RPG Assets Pack(农场RPG资源包)

🌟塞尔达的开场动画:风鱼之歌风格!🌟 像素参考:20*20 字体和声音不包括在内 资产包括: 1名身体部位分离的玩家和4个方向动画: 闲逛|散步|跑步|持有物品|使用工具|拉起|浇水 6个带有4个方向动画的工具 斧头|镐|喙|锄头|水壶|篮子 4个NPC,有4个方向动画: 闲逛|散步 �…

连接智慧未来:ChatGPT与IoT设备的交互探索

&#x1f916; 连接智慧未来&#xff1a;ChatGPT与IoT设备的交互探索 &#x1f310; 在当今数字化时代&#xff0c;物联网&#xff08;IoT&#xff09;设备正变得越来越普及&#xff0c;它们无声地融入我们的生活和工作中&#xff0c;从智能家居到工业自动化&#xff0c;IoT设…

LSH算法:高效相似性搜索的原理与Python实现II

局部敏感哈希&#xff08;LSH&#xff09;是一种高效的近似相似性搜索技术&#xff0c;广泛应用于需要处理大规模数据集的场景。在当今数据驱动的世界中&#xff0c;高效的相似性搜索算法对于维持业务运营至关重要&#xff0c;它们是许多顶尖公司技术堆栈的核心。 相似性搜索面…

去掉window11设备和驱动器中的百度网盘图标

背景 window系统设备驱动器中显示百度网盘图标&#xff0c;个人强迫症&#xff0c;要去掉&#xff01;&#xff01;&#xff01; 去掉window11->设备和驱动器->百度网盘 的图标 登录百度网盘点击”同步“ 点击设置 在基本设置里面去掉勾选“在我的电脑中显示百度网盘…

麒麟桌面操作系统上使用命令行添加软件图标到任务栏

原文链接&#xff1a;麒麟桌面操作系统上使用命令行添加软件图标到任务栏 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇在麒麟桌面操作系统上使用命令行添加软件图标到任务栏的文章。通过命令行添加软件图标到任务栏&#xff0c;可以快速、便捷地将常用的软件固定…

当大模型开始「考上」一本

参加 2024 河南高考&#xff0c;豆包和文心 4.0 过了一本线&#xff0c;但比 GPT-4o 还差点。 今天的大模型&#xff0c;智力水平到底如何&#xff1f; 2024 年高考陆续出分&#xff0c;我们想要解开这个过去一年普罗大众一直争论不休的话题。高考是衡量人类智力和学识水平的…

聚力教研共成长!思腾合力携手昇腾AI打造人工智能云平台

高校作为科研和创新的前沿阵地&#xff0c;不断推动科学技术的发展与进步。多元化的学科背景和丰富的科研课题使高校在科研创新中具有独特的竞争力&#xff0c;能够引领科技的发展和进步。人工智能技术快速迭代&#xff0c;高校在人才培养上往往偏重于理论知识的传授&#xff0…

如何获取阿里云盘的 token

方法一、通过 alist 便携获取 Token 一、访问&#xff1a;阿里云盘/分享 | AList文档 二、找到 刷新令牌 &#xff0c;点击 获取Token&#xff0c;并通过阿里云APP扫码登录后获取&#xff0c;取到之后将 Token 粘贴至软件内 方法二、通过 网页登录 自行获取 token 我这里用的…

Sora:探索AI视频模型的无限可能

随着人工智能技术的飞速发展&#xff0c;AI在视频处理和生成领域的应用正变得越来越广泛。Sora&#xff0c;作为新一代AI视频模型&#xff0c;展示了前所未有的潜力和创新能力。本文将深入探讨Sora的功能、应用场景以及它所带来的革命性变化。 一、Sora的核心功能 1.1 视频生…

Pandas中的数据转换[细节]

今天我们看一下Pandas中的数据转换&#xff0c;话不多说直接开始&#x1f387; 目录 一、⭐️apply函数应用 apply是一个自由度很高的函数 对于Series&#xff0c;它可以迭代每一列的值操作&#xff1a; 二、⭐️矢量化字符串 为什么要用str属性 替换和分割 提取子串 …

three.js基础环境搭建

three.js three.js介绍安装threejs文件资源目录介绍本地静态服务器vscode配置live-server插件nodejs配置本地静态服务器项目的开发环境引入threejs 基础知识右手坐标系程序结构 three.js介绍 three.js官网 Three.js是一款基于WebGL的JavaScript 3D库&#xff0c;它使得开发者能…