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]