Skip to content

TypeScript 和 ES6 语法

1. TypeScript 语法概述

什么是 TypeScript TypeScript 是由微软开发的一种开源编程语言,它是 JavaScript 的超集,增加了静态类型和其他一些特性,使得开发大型应用程序更加容易。

TypeScript 的主要特性

  • 类型系统:TypeScript 提供了静态类型检查,可以在编译阶段捕获潜在的错误。
  • 接口:接口定义了对象的结构,可以用于类型检查。
  • 类和继承:TypeScript 支持面向对象编程,包括类、继承、访问修饰符等。
  • 模块化:TypeScript 支持 ES6 的模块系统,可以将代码分割成独立的模块,提高代码的可维护性。

2. TypeScript 语法实例

类型注解

typescript
let isDone: boolean = false;
let decimal: number = 6;
let color: string = "blue";
let list: number[] = [1, 2, 3];

接口定义

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

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

let user = { firstName: "John", lastName: "Doe" };
console.log(greeter(user));

类的实现

typescript
class Animal {
    private name: string;

    constructor(name: string) {
        this.name = name;
    }

    public move(distanceInMeters: number) {
        console.log(`${this.name} moved ${distanceInMeters}m.`);
    }
}

let dog = new Animal("Dog");
dog.move(10);

模块导入和导出

typescript
// math.ts
export function add(x: number, y: number): number {
    return x + y;
}

// main.ts
import { add } from './math';
console.log(add(2, 3));

3. ES6 重要语法概述

什么是 ES6 ES6(ECMAScript 2015)是 JavaScript 的第六版标准,引入了许多新的特性,使得 JavaScript 编程更加高效和便捷。

ES6 的主要特性

  • let 和 const:用于声明变量,let 有块级作用域,const 用于声明常量。
  • 箭头函数:简化函数定义,并且不绑定 this
  • 模板字符串:允许多行字符串和内嵌表达式。
  • 解构赋值:从数组或对象中提取值并赋值给变量。
  • 扩展运算符:用于展开数组或对象。
  • 类和继承:提供面向对象编程的语法糖。
  • 模块化:提供导入和导出模块的语法。
  • Promise:用于处理异步操作。
  • async/await:更简洁地处理异步操作。

4. ES6 语法实例

使用 let 和 const

javascript
let x = 10;
const y = 20;
x = 15; // 允许
y = 25; // 报错,y 是常量

箭头函数示例

javascript
const add = (a, b) => a + b;
console.log(add(2, 3));

模板字符串示例

javascript
let name = "John";
let greeting = `Hello, ${name}!`;
console.log(greeting);

解构赋值示例

javascript
let [a, b] = [1, 2];
let { name, age } = { name: "John", age: 25 };

扩展运算符示例

javascript
let arr1 = [1, 2];
let arr2 = [...arr1, 3, 4]; // [1, 2, 3, 4]

类和继承示例

javascript
class Animal {
    constructor(name) {
        this.name = name;
    }

    move(distanceInMeters) {
        console.log(`${this.name} moved ${distanceInMeters}m.`);
    }
}

class Dog extends Animal {
    bark() {
        console.log('Woof! Woof!');
    }
}

let dog = new Dog('Dog');
dog.bark();
dog.move(10);

模块导入和导出示例

javascript
// math.js
export function add(x, y) {
    return x + y;
}

// main.js
import { add } from './math';
console.log(add(2, 3));

使用 Promise 和 async/await

javascript
// Promise 示例
let promise = new Promise((resolve, reject) => {
    setTimeout(() => resolve("done!"), 1000);
});

promise.then(result => console.log(result));

// async/await 示例
async function asyncFunction() {
    let result = await promise;
    console.log(result);
}

asyncFunction();

上次更新于: