# TypeScript 简介

540 阅读3分钟

什么是 TypeScript?

TypeScript 就是添加了类型系统的 JavaScript ,适用于任何规模的项目,通过描述我们发现 TypeScript 两个最重要的特性: 类型系统适用于任何规模

TypeScript 的特性

说到 TypeScript 我们就得说说他的原型 JavaScript 了,我们都知道 JavaScript 是一门非常灵活的单线程语言:

  • 它没有类型约束,一个变量可能初始化是字符串,过一会又被赋值为数字。
  • 由于隐式类型转换的存在,有的变量类型很难在运行前就确定。
  • 基于原型的面相对象编程,使得原型上的属性和方法可以在运行时被修改。
  • 函数是 JavaScript 中的一等公民,可以赋值给变量,也可当做参数或者返回值。

这种灵活所带来的的问题同样出现,例如使得它的代码质量参差不齐,维护成本高,运行时错误多,而 Typescript 的类型系统就很大程度的弥补了 JavaScript 的缺点。

TypeScript 是静态类型

类型系统按照 [类型检查的时机] 来分类, 可以分为 动态类型静态类型

动态类型:是指在运行是才会进行类型检查, 这种语言的类型错误往往会到导致运行是错误。 JavaScript 是一门解释型的语言,没有编译阶段,是动态类型。

静态类型:是指编译阶段就能确定每个变量的类型,这种语言往往会导致语法错误。 TypeScript 是静态类型,在运行前需要先编译为 JavaScript ,而在编译阶段就会进行类型检查。

大部分的 JavaScript 代码, 只需要经过少量的修改(或者完全不用修)就变成 TypeScript 代码,这因为 TypeScript 强大的 [类型推论][] ,即使不去手动声明变量 foo 的类型,也能在变量初始化时自动推论出它是一个 number 类型。

TypeScirpt 是弱类型

类型系统按照 [是否允许隐式类型转换] 来分类,可以分为 强类型弱类型 。TypeScript 完全兼容 JavaScript 的,TypeScript 的核心设计理念,在完整保留 JavaScript 运行时行为的基础上,通过引入静态系统来提高代码的可维护新,减少可能出现的 bug。

适用于任何规模

TypeScript 由于类型系统可以为大型项目带来更高的可维护性,非常适用于大型项目,并且由于有 [类型推论][],大部分类型都不需要手动声明了,并且,TypeScript增强了编译器(IDE)的功能,包括代码补全、接口提示、跳转定义、代码重构等,这在很大程度上提高了开发效率。,如果你认为类型检查过于严格,还可以通过修改编译选项来降低类型检查的标准。

安装 TypeScript

TypeScript 的命令行工具全局安装方法如下:

npm install -g typescript

编译器

主流编译器都支持 TypeScript , 这里推荐使用 Visual Studio Code。 下载安装:code.visualstudio.com/

本文摘抄自以下文章:

原文 《TypeScipt 入门教程》