Typescript基础|青训营

98 阅读3分钟

什么是Typescript?

TypeScript是由微软开发的一款开源的编程语言,它是JavaScript的超集,遵循最新的ES6、ES5规范。TypeScript扩展了JavaScript的语法,并引入了类型系统,使得JavaScript在开发大型企业项目时更加可靠和可维护。与JavaScript相比,TypeScript具有更严格的类型检查、更好的代码提示和错误捕获能力。谷歌的Angular、Vue、React等框架也可以集成TypeScript来进行开发。同时,在Node.js框架中,如Nest.js、midway等也广泛使用TypeScript语法。

TypeScriptJavaScript
JavaScript的超集,用于解决大型项目的代码复杂性一种脚本语言,用于创建动态网页
强类型,支持静态和动态类型动态弱类型语言
可以在编译期间发现并纠正错误只能在运行时发现错误
不允许改变变量的数据类型变量可以被赋值澄不同类型

TS基础——基础类型

  1. boolean、number、string
  2. undefined、null
  3. any、unknow、void
  4. never
  5. 数组类型[]
  6. 元祖类型tuple

TS基础——函数类型

  • 定义:TS定义函数类型时要定义输入参数类型和输出类型
  • 输入参数:参数支持可选参数和默认参数
  • 输出参数:输出卡伊自动推断,没有返回值时,默认为void类型
  • 函数重载:名称相同但参数不同,可以通过重载支持多种类型

TS基础——interface

  • 定义:接口是为了定义对象类型
  • 特点:
  1. 可选属性:?
  2. 只读属性:readonly
  3. 可以描述函数类型
  4. 可以描述自定义属性
  • 总结:接口非常灵活duck typing

TS基础——类

  • 定义:写法和JS差不多,增加了一些定义
  • 特点:增加了public、private、protected修饰符
  • 抽象类:只能被继承,不能被实例化;作为基类,抽象方法必须被子类实现
  • interface约束类,使用implements关键字

1. 静态类型

JavaScript是一种动态类型语言,这意味着你可以在运行时改变变量的类型。而TypeScript引入了静态类型,这意味着你在编写代码时就定义了变量的类型。这有助于在编译阶段就发现和修复错误,而不是在运行时。

let isDone: boolean = false; 
let decimal: number = 6; 
let color: string = "blue";

2. 类和接口

TypeScript支持基于类的面向对象编程。你可以定义类、接口和继承,这使得代码结构更清晰,更易于理解和维护。

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

let greeter = new Greeter("world");

3. 模块

TypeScript支持模块化编程。你可以将代码分割成多个模块,每个模块都有自己的作用域。模块可以导出和导入函数、变量或类型,这使得代码更易于组织和重用。

// someModule.ts 
export function someFunction() { /* ... */ }

// anotherModule.ts 
import { someFunction } from './someModule'; 
someFunction();

4. 高级类型

TypeScript提供了一些高级类型,如联合类型、交叉类型、类型别名、类型守卫和类型断言等,这使得你可以更精确地描述你的数据结构。

type StringOrNumber = string | number; // Union type
function padLeft(value: string, padding: StringOrNumber) { 
         // ... 
}

5. 工具支持

由于TypeScript的静态类型特性,许多文本编辑器和IDE(如Visual Studio Code)可以提供更强大的代码自动完成、导航和重构功能。这可以大大提高开发效率和代码质量。

小结

总的来说,TypeScript通过添加静态类型、类、接口和模块等特性,使JavaScript代码更易于理解和维护。它是一种强大的工具,可以帮助我们编写更健壮、更可维护的JavaScript代码。