iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何使用TypeScript
  • 468
分享到

如何使用TypeScript

2023-06-03 15:06:30 468人浏览 泡泡鱼
摘要

这篇文章主要讲解了“如何使用typescript”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用TypeScript”吧!一、什么是 TypeScriptTypeScript 是近几年

这篇文章主要讲解了“如何使用typescript”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用TypeScript”吧!

一、什么是 TypeScript

TypeScript 是近几年被火爆的应用了,这让大家产生了一个错觉:这么多的拥护者,难道TypeScript是一个新的语言?

TypeScript是微软公司开发和维护的一种面向对象编程语言。它是javascript的超集,包含其所有元素。

TypeScript完全遵循OOPS的概念,在TSC(TypeScript编译器)的帮助下,我们可以将TypeScript代码(.ts文件)转换成JavaScript(.js文件)

如何使用TypeScript

TypeScript是JavaScript的超集

二、TypeScript 简史

2010年,Anders Hejlsberg(TypeScript的创建者)开始在微软开发TypeScript,并于2012年向公众发布了TypeScript的第一个版本(TypeScript 0.8)。尽管TypeScript的发布受到了全世界许多人的称赞,但是由于缺少主要ide的支持,它并没有被JavaScript社区主要采用。

TypeScript的第一个版本(TypeScript 0.8)于2012年10月发布。

最新版本的Typescript(Typescript 3.0)于2018年7月发布,您可以下载最新版本!

三、为什么我们要使用TypeScript?

  • TypeScript简化了JavaScript代码,使其更易于阅读和调试。

  • TypeScript是开源的。

  • TypeScript为JavaScript ide和实践(如静态检查)提供了高效的开发工具

  • TypeScript使代码更易于阅读和理解。

  • 使用TypeScript,我们可以大大改进普通的JavaScript。

  • TypeScript为我们提供了es6(ECMAScript 6)的所有优点,以及更高的生产率。

  • TypeScript通过对代码进行类型检查,可以帮助我们避免在编写JavaScript时经常遇到的令人痛苦的错误。

  • 强大的类型系统,包括泛型。

  • TypeScript只不过是带有一些附加功能的JavaScript。

  • TypeScript代码可以按照ES5和ES6标准编译,以支持最新的浏览器。

  • 与ECMAScript对齐以实现兼容性。

  • 以JavaScript开始和结束。

  • 支持静态类型。

  • TypeScript将节省开发人员的时间。

  • TypeScript是ES3、ES5和ES6的超集。

TypeScript的附加功能

  • 具有可选参数的函数。

  • 使用REST参数的函数。

  • 泛型支持。

  • 模块支持。

四、大牛现身说法:

  • “我们喜欢TypeScript有很多方面……有了TypeScript,我们的几个团队成员说了类似的话,我现在实际上已经理解了我们自己的大部分代码!因为他们可以轻松地遍历它并更好地理解关系。我们已经通过TypeScript的检查发现了几个漏洞。“-Brad Green,angular工程总监

  • ionic的主要目标之一是使应用程序开发尽可能快速和简单,工具支持TypeScript为我们提供了自动完成、类型检查和源文档与之真正一致。”-Tim Lancina,工具开发人员–Ionic

  • “在编写基于WEB或JavaScript的现代应用程序时,TypeScript是一个明智的选择。TypeScript经过仔细考虑的语言特性和功能,以及它不断改进的工具,带来了非常有成效的开发体验。”-Epic研究员Aaron Cornelius

  • “TypeScript帮助我们重用团队的知识并通过提供与C#相同的优秀开发经验来保持相同的团队速度……比普通JavaScript有了巨大的改进。”-Valio Stoychev,PM Lead–NativeScript

五、你可能不知道的TypeScript顶级功能

面向对象程序设计

TypeScript包含一组非常好的面向对象编程(OOP)特性,这些特性有助于维护健壮和干净的代码;这提高了代码质量和可维护性。这些OOP特性使TypeScript代码非常整洁和有组织性。

例如:

class CustomerModel {
 customerId: number;
 companyName: string;
 contactName: string;
 country: string;
}
class CustomerOperation{
 addCustomer(customerData: CustomerModel) : number {
   // 添加用户
   let customerId = 5;// 保存后返回的ID
   return customerId;
 }
}

接口、泛型、继承和方法访问修饰符

TypeScript支持接口、泛型、继承和方法访问修饰符。接口是指定契约的好方法。泛型有助于提供编译时检查,继承使新对象具有现有对象的属性,访问修饰符控制类成员的可访问性。TypeScript有两个访问修饰符-public和private。默认情况下,成员是公共的,但您可以显式地向其添加公共或私有修饰符。

(1)接口

interface ITax {
 taxpayerId: string;
 calculateTax(): number;
}

class IncomeTax implements ITax {
 taxpayerId: string;
 calculateTax(): number {
   return 10000;
 }
}

class ServiceTax implements ITax {
 taxpayerId: string;
 calculateTax(): number {
   return 2000;
 }
}

(2)访问修饰符

class Customers{
 public companyname:string;
 private country:string;
}

显示一个公共变量和一个私有变量

(3)继承

class Employee{
 Firstname:string;
}

class Company extends Employee {
 Department:string;
 Role:string
 private AddEmployee(){
   this.Department="myDept";
   this.Role="Manager";
   this.FirstName="Test";
 }
}

(4)泛型

function identity<T> (arg: T): T {
 return arg;
}
// 显示泛型实现的示例
let output = identity <string>("myString");
let outputl = identity <number> (23);

(5)强/静态类型

TypeScript不允许将值与不同的数据类型混合。如果违反了这些限制,就会抛出错误。因此,在声明变量时必须定义类型,并且除了在JavaScript中非常可能定义的类型之外,不能分配其他值。

例如:

let testnumber: number = 6;
testnumber = "myNumber"; // 这将引发错误
testnumber = 5; // 这样就可以了

如何使用TypeScript

编译时/静态类型检查

如果我们不遵循任何编程语言的正确语法和语义,那么编译器就会抛出编译时错误。在删除所有语法错误或调试编译时错误之前,它们不会让程序执行一行代码。TypeScript也是如此。

例如:

let isDone: boolean = false;
isDone = "345";  // 这将引发错误
isDone = true; // 这样就可以了

比JavaScript代码更少

TypeScript是JavaScript的包装器,因此可以使用帮助类来减少代码。Typescript中的代码更容易理解。

可读性

接口、类等为代码提供可读性。由于代码是用类和接口编写的,因此更有意义,也更易于阅读和理解。

举例:

class Greeter {
 private greeting: string;
 constructor (private message: string) {
   this.greeting = message;
 }
 greet() {
   return "Hello, " + this.greeting;
 }
}

JavaScript 代码:

var Greeter = (function () {
 function Greeter(message) {
   this.greeting = message;
 }
 Greeter.prototype.greet = function () {
   return "Hello, " + this.greeting;
 };
 return Greeter;
})();

兼容性

Typescript与JavaScript库兼容,比如 underscore.js,Lodash等。它们有许多内置且易于使用的功能,使开发更快。

提供可以将代码转换为JavaScript等效代码的“编译器”

TypeScript代码由纯JavaScript代码以及特定于TypeScript的某些关键字和构造组成。但是,编译TypeScript代码时,它会转换为普通的JavaScript。这意味着生成的JavaScript可以与任何支持JavaScript的浏览器一起使用。

支持模块

随着TypeScript代码基的增长,组织类和接口以获得更好的可维护性变得非常重要。TypeScript模块允许您这样做。模块是代码的容器,可以帮助您以整洁的方式组织代码。从概念上讲,您可能会发现它们类似于.net命名空间。

例如:

module Company {
 class Employee {
 }
 
 class EmployeeHelper {
   targetEmployee: Employee;
 }
 
 export class Customer {
 }
}
var obj = new Company.Customer();

ES6 功能支持

Typescript是ES6的一个超集,所以ES6的所有特性它都有。另外还有一些特性,比如它支持通常称为lambda函数的箭头函数。ES6引入了一种稍微不同的语法来定义匿名函数,称为胖箭头(fat arrow)语法。

举例:

setTimeout(() => {
  console.log("setTimeout called!")
}, 1000);

在流行的框架中使用

TypeScript在过去几年里越来越流行。也许TypeScript流行的决定性时刻是Angular2正式转换到TS的时候,这是一个双赢的局面。

减少错误

它减少了诸如空处理、未定义等错误。强类型特性,通过适当的类型检查限制开发人员,来编写特定类型的代码。

函数重载

TypeScript允许您定义重载函数。这样,您可以根据参数调用函数的不同实现。但是,请记住,TypeScript函数重载有点奇怪,需要在实现期间进行类型检查。这种限制是由于TypeScript代码最终被编译成纯JavaScript,而JavaScript不支持真正意义上的函数重载概念。

例如:

class functionOverloading{
 addCustomer(custId: number);
 addCustomer(company: string);
 addCustomer(value: any) {
   if (value && typeof value == "number") {
     alert("First overload - " + value);
   }
   if (value && typeof value == "string") {
     alert("Second overload - " + value);
   }
 }
}

构造器

在TypeScript中定义的类可以有构造函数。构造函数通常通过将默认值设置为其属性来完成初始化对象的工作。构造函数也可以像函数一样重载。

例如:

export class SampleClass{
 private title: string;
 constructor(public constructorexample: string){
   this.title = constructorexample;
 }
}

调试

用TypeScript编写的代码很容易调试。

TypeScript只是JavaScript

TypeScript始于JavaScript,止于JavaScript。Typescript采用JavaScript中程序的基本构建块。为了执行的目的,所有类型脚本代码都转换为其JavaScript等效代码。

例如:

class Greeter {
 greeting: string;
 constructor (message: string) {
   this.greeting = message;
 }
 greet() {
   return "Hello, " + this.greeting;
 }
}

JavaScript 代码:

var Greeter = (function () {
 function Greeter(message) {
   this.greeting = message;
 }
 Greeter.prototype.greet = function () {
   return "Hello, " + this.greeting;
 };
 return Greeter;
})();

可移植性

TypeScript可以跨浏览器、设备和操作系统移植。它可以在JavaScript运行的任何环境中运行。与对应的脚本不同,TypeScript不需要专用的VM或特定的运行时环境来执行。

感谢各位的阅读,以上就是“如何使用TypeScript”的内容了,经过本文的学习后,相信大家对如何使用TypeScript这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 如何使用TypeScript

本文链接: https://www.lsjlt.com/news/234784.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++ 生态系统中流行库和框架的贡献指南
    作为 c++++ 开发人员,通过遵循以下步骤即可为流行库和框架做出贡献:选择一个项目并熟悉其代码库。在 issue 跟踪器中寻找适合初学者的问题。创建一个新分支,实现修复并添加测试。提交...
    99+
    2024-05-15
    框架 c++ 流行库 git
  • C++ 生态系统中流行库和框架的社区支持情况
    c++++生态系统中流行库和框架的社区支持情况:boost:活跃的社区提供广泛的文档、教程和讨论区,确保持续的维护和更新。qt:庞大的社区提供丰富的文档、示例和论坛,积极参与开发和维护。...
    99+
    2024-05-15
    生态系统 社区支持 c++ overflow 标准库
  • c++中if elseif使用规则
    c++ 中 if-else if 语句的使用规则为:语法:if (条件1) { // 执行代码块 1} else if (条件 2) { // 执行代码块 2}// ...else ...
    99+
    2024-05-15
    c++
  • c++中的继承怎么写
    继承是一种允许类从现有类派生并访问其成员的强大机制。在 c++ 中,继承类型包括:单继承:一个子类从一个基类继承。多继承:一个子类从多个基类继承。层次继承:多个子类从同一个基类继承。多层...
    99+
    2024-05-15
    c++
  • c++中如何使用类和对象掌握目标
    在 c++ 中创建类和对象:使用 class 关键字定义类,包含数据成员和方法。使用对象名称和类名称创建对象。访问权限包括:公有、受保护和私有。数据成员是类的变量,每个对象拥有自己的副本...
    99+
    2024-05-15
    c++
  • c++中优先级是什么意思
    c++ 中的优先级规则:优先级高的操作符先执行,相同优先级的从左到右执行,括号可改变执行顺序。操作符优先级表包含从最高到最低的优先级列表,其中赋值运算符具有最低优先级。通过了解优先级,可...
    99+
    2024-05-15
    c++
  • c++中a+是什么意思
    c++ 中的 a+ 运算符表示自增运算符,用于将变量递增 1 并将结果存储在同一变量中。语法为 a++,用法包括循环和计数器。它可与后置递增运算符 ++a 交换使用,后者在表达式求值后递...
    99+
    2024-05-15
    c++
  • c++中a.b什么意思
    c++kquote>“a.b”表示对象“a”的成员“b”,用于访问对象成员,可用“对象名.成员名”的语法。它还可以用于访问嵌套成员,如“对象名.嵌套成员名.成员名”的语法。 c++...
    99+
    2024-05-15
    c++
  • C++ 并发编程库的优缺点
    c++++ 提供了多种并发编程库,满足不同场景下的需求。线程库 (std::thread) 易于使用但开销大;异步库 (std::async) 可异步执行任务,但 api 复杂;协程库 ...
    99+
    2024-05-15
    c++ 并发编程
  • 如何在 Golang 中备份数据库?
    在 golang 中备份数据库对于保护数据至关重要。可以使用标准库中的 database/sql 包,或第三方包如 github.com/go-sql-driver/mysql。具体步骤...
    99+
    2024-05-15
    golang 数据库备份 mysql git 标准库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作