Typescript学习教程,从入门到精通,TypeScript 入门教程(1)

TypeScript 教程

img
TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准(ES6 教程)。

TypeScript 由微软开发的自由和开源的编程语言,在 JavaScript 的基础上增加了静态类型检查的超集。

TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。


语言特性

TypeScript 是一种给 JavaScript 添加特性的语言扩展,增加的功能包括:

  • 类型批注和编译时类型检查
  • 类型推断
  • 类型擦除
  • 接口
  • 枚举
  • Mixin
  • 泛型编程
  • 名字空间
  • 元组
  • Await

以下功能是从 ECMA 2015 反向移植而来:

  • 模块
  • lambda 函数的箭头语法
  • 可选参数以及默认参数

JavaScript 与 TypeScript 的区别

TypeScript 是 JavaScript 的超集,扩展了 JavaScript 的语法,因此现有的 JavaScript 代码可与 TypeScript 一起工作无需任何修改,TypeScript 通过类型注解提供编译时的静态类型检查。

TypeScript 可处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译。

img

img


第一个 TypeScript 实例

以下实例我们使用 TypeScript 来输出 Hello World!:

实例

const hello : string = "Hello World!"
console.log(hello)

运行结果

Hello world!

让我们使用TypeScript来创建一个简单的Web应用。

安装TypeScript

有两种主要的方式来获取TypeScript工具:

  • 通过npm(Node.js包管理器)
  • 安装Visual Studio的TypeScript插件

Visual Studio 2017和Visual Studio 2015 Update 3默认包含了TypeScript。 如果你的Visual Studio还没有安装TypeScript,你可以下载它。

针对使用npm的用户:

> npm install -g typescript

构建你的第一个TypeScript文件

在编辑器,将下面的代码输入到greeter.ts文件里:

function greeter(person) {
    return "Hello, " + person;
}

let user = "Jane User";

document.body.innerHTML = greeter(user);

编译代码

我们使用了.ts扩展名,但是这段代码仅仅是JavaScript而已。 你可以直接从现有的JavaScript应用里复制/粘贴这段代码。

在命令行上,运行TypeScript编译器:

tsc greeter.ts

输出结果为一个greeter.js文件,它包含了和输入文件中相同的JavsScript代码。 一切准备就绪,我们可以运行这个使用TypeScript写的JavaScript应用了!

接下来让我们看看TypeScript工具带来的高级功能。 给 person函数的参数添加: string类型注解,如下:

function greeter(person: string) {
    return "Hello, " + person;
}

let user = "Jane User";

document.body.innerHTML = greeter(user);

类型注解

TypeScript里的类型注解是一种轻量级的为函数或变量添加约束的方式。 在这个例子里,我们希望 greeter函数接收一个字符串参数。 然后尝试把 greeter的调用改成传入一个数组:

function greeter(person: string) {
    return "Hello, " + person;
}

let user = [0, 1, 2];

document.body.innerHTML = greeter(user);

重新编译,你会看到产生了一个错误。

greeter.ts(7,26): error TS2345: Argument of type 'number[]' is not assignable to parameter of type 'string'.

类似地,尝试删除greeter调用的所有参数。 TypeScript会告诉你使用了非期望个数的参数调用了这个函数。 在这两种情况中,TypeScript提供了静态的代码分析,它可以分析代码结构和提供的类型注解。

要注意的是尽管有错误,greeter.js文件还是被创建了。 就算你的代码里有错误,你仍然可以使用TypeScript。但在这种情况下,TypeScript会警告你代码可能不会按预期执行。

接口

让我们开发这个示例应用。这里我们使用接口来描述一个拥有firstNamelastName字段的对象。 在TypeScript里,只在两个类型内部的结构兼容那么这两个类型就是兼容的。 这就允许我们在实现接口时候只要保证包含了接口要求的结构就可以,而不必明确地使用 implements语句。

interface Person {
    firstName: string;
    lastName: string;
}

function greeter(person: Person) {
    return "Hello, " + person.firstName + " " + person.lastName;
}

let user = { firstName: "Jane", lastName: "User" };

document.body.innerHTML = greeter(user);

最后,让我们使用类来改写这个例子。 TypeScript支持JavaScript的新特性,比如支持基于类的面向对象编程。

让我们创建一个Student类,它带有一个构造函数和一些公共字段。 注意类和接口可以一起共作,程序员可以自行决定抽象的级别。

还要注意的是,在构造函数的参数上使用public等同于创建了同名的成员变量。

class Student {
    fullName: string;
    constructor(public firstName, public middleInitial, public lastName) {
        this.fullName = firstName + " " + middleInitial + " " + lastName;
    }
}

interface Person {
    firstName: string;
    lastName: string;
}

function greeter(person : Person) {
    return "Hello, " + person.firstName + " " + person.lastName;
}

let user = new Student("Jane", "M.", "User");

document.body.innerHTML = greeter(user);

重新运行tsc greeter.ts,你会看到生成的JavaScript代码和原先的一样。 TypeScript里的类只是JavaScript里常用的基于原型面向对象编程的简写。

运行TypeScript Web应用

greeter.html里输入如下内容:

<!DOCTYPE html>
<html>
    <head><title>TypeScript Greeter</title></head>
    <body>
        <script src="greeter.js"></script>
    </body>
</html>

在浏览器里打开greeter.html运行这个应用!

可选地:在Visual Studio里打开greeter.ts或者把代码复制到TypeScript playground。 将鼠标悬停在标识符上查看它们的类型。 注意在某些情况下它们的类型可以被自动地推断出来。 重新输入一下最后一行代码,看一下自动补全列表和参数列表,它们会根据DOM元素类型而变化。 将光标放在 greeter函数上,点击F12可以跟踪到它的定义。 还有一点,你可以右键点击标识,使用重构功能来重命名。

这些类型信息以及工具可以很好的和JavaScript一起工作。 更多的TypeScript功能演示,请查看本网站的起步部分。

Visual Studio picture

好的,下面是 TypeScript入门精通教程: # TypeScript 入门教程 ## 什么是 TypeScriptTypeScript 是一种由微软开发的静态类型语言,它是 JavaScript 的超集,意味着它包含了 JavaScript 的所有内容,并且添加了一些新的特性。TypeScript 可以编译成纯 JavaScript,并且可以在任何地方运行。 TypeScript 的主要特点包括: - 强类型:TypeScript 可以在编译时检查类型错误,从而提高代码质量和可维护性。 - 面向对象:TypeScript 支持类、接口、继承等面向对象编程特性。 - 模块化:TypeScript 支持模块化,可以将代码分成多个模块,以便更好地组织和管理代码。 - 可读性:TypeScript 支持类型注解和接口定义,使代码更容易阅读和理解。 ## 安装 TypeScript 要开始使用 TypeScript,您需要先安装 TypeScript 编译器。您可以使用以下命令在全局范围内安装 TypeScript: ``` npm install -g typescript ``` ## 第一个 TypeScript 程序 创建一个名为 `hello.ts` 的文件,并将以下代码添加到文件中: ```typescript function sayHello(name: string) { console.log(`Hello, ${name}!`); } sayHello("TypeScript"); ``` 要编译 TypeScript 文件,请在命令行中导航到 TypeScript 文件所在的目录,并运行以下命令: ``` tsc hello.ts ``` 这将生成一个名为 `hello.js` 的 JavaScript 文件。要运行这个 JavaScript 文件,请在命令行中运行以下命令: ``` node hello.js ``` 这将输出以下内容: ``` Hello, TypeScript! ``` ## 类型注解 TypeScript 支持类型注解,可以在变量名后面使用冒号来指定变量的类型。例如: ```typescript let name: string = "TypeScript"; let age: number = 10; let isStudent: boolean = true; ``` 在上面的例子中,我们声明了三个变量,并将它们的类型分别设置为字符串、数字和布尔值。 ## 接口 接口是 TypeScript 的一个重要特性,它用于定义对象的形状。例如,以下是一个 `Person` 接口: ```typescript interface Person { name: string; age: number; } let person: Person = { name: "TypeScript", age: 10 }; ``` 在上面的例子中,我们定义了一个 `Person` 接口,它有两个属性:`name` 和 `age`。我们还创建了一个 `person` 对象,并将它的类型设置为 `Person`。 ## 类 TypeScript 支持类,可以使用类来创建对象和继承。以下是一个 `Animal` 类的示例: ```typescript class Animal { name: string; constructor(name: string) { this.name = name; } move(distance: number = 0) { console.log(`${this.name} moved ${distance}m.`); } } class Dog extends Animal { constructor(name: string) { super(name); } bark() { console.log("Woof! Woof!"); } } let dog = new Dog("Fido"); dog.move(10); dog.bark(); ``` 在上面的例子中,我们定义了一个 `Animal` 类和一个 `Dog` 类,并使用 `extends` 关键字将 `Dog` 类继承自 `Animal` 类。我们还创建了一个 `dog` 对象,并调用了 `move()` 和 `bark()` 方法。 ## 模块 TypeScript 支持模块化,可以将代码分成多个模块,并使用 `import` 和 `export` 关键字来管理模块之间的依赖关系。以下是一个简单的模块示例: ```typescript // greeter.ts export function sayHello(name: string) { console.log(`Hello, ${name}!`); } // main.ts import { sayHello } from "./greeter"; sayHello("TypeScript"); ``` 在上面的例子中,我们将 `sayHello()` 函数定义在 `greeter.ts` 文件中,并使用 `export` 关键字将它导出。然后在 `main.ts` 文件中,我们使用 `import` 关键字将 `sayHello()` 函数导入,并调用它。 ## 总结 以上是 TypeScript入门教程,涵盖了 TypeScript 的主要特性,包括类型注解、接口、类和模块。这些特性可以帮助您编写更安全、更可维护的 JavaScript 代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值