1 TypeScript 核心库的定义文件

TypeScript 核心库的定义文件中定义了所有浏览器环境需要用到的类型,并且是预置在 TypeScript 中的。当你在使用这些常用的变量或方法时, TypeScript 已经在帮你做类型判断了,如:

  1. Math.pow(3, '2'); // Error: 类型“string”的参数不能赋给类型“number”的参数。
  2. document.addEventListener('click', (e) => {
  3. e.targetCurrent; // ERROR: 类型“MouseEvent”上不存在属性“targetCurrent”。
  4. });

1.1 EcmaScript 内置对象

EcmaScript 标准提供了很多内置对象如:String,Number,Math,Date,RegExp 等, TypeScript 核心库的定义文件都为其提供了对应的对象类型声明。

  1. let b: Boolean = new Boolean(1);
  2. let n: Number = new Number(1);
  3. let d: Date = new Date();
  4. let reg: RegExp = new RegExp('^\d$');

1.2 BOM 与 DOM 内置对象

TypeScript 核心库的定义文件也为 BOM 浏览器对模型象和 DOM 文档对象模型提供了对应的类型声明,如 Node, Element, HTMLElement, Event

  1. let body: HTMLElement = document.body;
  2. document.addEventListener('click', (e: MouseEvent): any => {
  3. });

2 在 Node.js 环境中使用 TypeScript

Node.js 环境并非在 JavaScript 或浏览器内置对象中,因此要在 Node.js 环境中使用 TypeScript 需要引用第三方声明库:

  1. npm i -D @types/node