JavaScript 中有很多内置对象,它们可以直接在 TypeScript 中当做定义好了的类型。
内置对象是指根据标准在全局作用域(Global)上存在的对象。这里的标准是指 ECMAScript 和其他环境(比如 DOM)的标准。
ECMAScript 标准提供的内置对象
Number 对象
对象属性
| 属性 | 描述 |
|---|---|
| MAX_VALUE | 可表示的最大的数,MAX_VALUE 属性值接近于 1.79E+308。大于 MAX_VALUE 的值代表 "Infinity"。 |
| MIN_VALUE | 可表示的最小的数,即最接近 0 的正数 (实际上不会变成 0)。最大的负数是 -MIN_VALUE,MIN_VALUE 的值约为 5e-324。小于 MIN_VALUE ("underflow values") 的值将会转换为 0。 |
| NaN | 非数字值(Not-A-Number)。 |
| NEGATIVE_INFINITY | 负无穷大,溢出时返回该值。该值小于 MIN_VALUE。 |
| POSITIVE_INFINITY | 正无穷大,溢出时返回该值。该值大于 MAX_VALUE。 |
| prototype | Number 对象的静态属性。使你有能力向对象添加属性和方法。 |
| constructor | 返回对创建此对象的 Number 函数的引用。 |
对象方法
| 方法 | 描述 |
|---|---|
| toExponential() | 把对象的值转换为指数计数法。 |
| toFixed() | 把数字转换为字符串,并对小数点指定位数。 |
| toLocaleString() | 把数字转换为字符串,使用本地数字格式顺序。 |
| toPrecision() | 把数字格式化为指定的长度。 |
| toString() | 把数字转换为字符串,使用指定的基数。数字的基数是 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。 |
| valueOf() | 返回一个 Number 对象的原始数字值。 |
String对象
对象属性
| 属性 | 描述 |
|---|---|
| constructor | 对创建该对象的函数的引用。 |
| length | 返回字符串的长度。 |
| prototype | 允许您向对象添加属性和方法。 |
对象方法
| 方法 | 描述 |
|---|---|
| charAt() | 返回在指定位置的字符。 |
| charCodeAt() | 返回在指定的位置的字符的 Unicode 编码。 |
| concat() | 连接两个或更多字符串,并返回新的字符串。 |
| indexOf() | 返回某个指定的字符串值在字符串中首次出现的位置。 |
| lastIndexOf() | 从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置。 |
| localeCompare() | 用本地特定的顺序来比较两个字符串。 |
| match() | 查找找到一个或多个正则表达式的匹配。 |
| replace() | 替换与正则表达式匹配的子串 |
| search() | 检索与正则表达式相匹配的值 |
| slice() | slice()提取字符串的片断,并在新的字符串中返回被提取的部分。 |
| split() | 把字符串分割为子字符串数组。 |
| substr() | 从起始索引号提取字符串中指定数目的字符。 |
| substring() | 提取字符串中两个指定的索引号之间的字符。 |
| toLocaleLowerCase() | 根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射。 |
| toLocaleUpperCase() | 据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射。 |
| toLowerCase() | 把字符串转换为小写。 |
| toString() | 返回字符串。 |
| toUpperCase() | 把字符串转换为大写。 |
| valueOf() | 返回指定字符串对象的原始值。 |
Array对象
对象方法
| 方法 | 描述 |
|---|---|
| concat() | 连接两个或更多的数组,并返回结果。 |
| every() | 检测数值元素的每个元素是否都符合条件。 |
| filter() | 检测数值元素,并返回符合条件所有元素的数组。 |
| forEach() | 数组每个元素都执行一次回调函数。 |
| indexOf() | 搜索数组中的元素,并返回它所在的位置。如果搜索不到,返回值 -1,代表没有此项。 |
| join() | 把数组的所有元素放入一个字符串。 |
| lastIndexOf() | 返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。 |
| map() | 通过指定函数处理数组的每个元素,并返回处理后的数组。 |
| pop() | 删除数组的最后一个元素并返回删除的元素。 |
| push() | 向数组的末尾添加一个或更多元素,并返回新的长度。 |
| reduce() | 将数组元素计算为一个值(从左到右)。 |
| reduceRight() | 将数组元素计算为一个值(从右到左)。 |
| reverse() | 反转数组的元素顺序。 |
| shift() | 删除并返回数组的第一个元素。 |
| slice() | 选取数组的的一部分,并返回一个新数组。 |
| some() | 检测数组元素中是否有元素符合指定条件。 |
| sort() | 对数组的元素进行排序。 |
| splice() | 从数组中添加或删除元素。 |
| toString() | 把数组转换为字符串,并返回结果。 |
| unshift() | 向数组的开头添加一个或更多元素,并返回新的长度。 |
Map 对象
Map 对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者原始值) 都可以作为一个键或一个值。
对象方法
| 方法 | 描述 |
|---|---|
| map.clear() | 移除 Map 对象的所有键/值对 。 |
| map.set() | 设置键值对,返回该 Map 对象。 |
| map.get() | 返回键对应的值,如果不存在,则返回 undefined。 |
| map.has() | 返回一个布尔值,用于判断 Map 中是否包含键对应的值。 |
| map.delete() | 删除 Map 中的元素,删除成功返回 true,失败返回 false。 |
| map.size() | 返回 Map 对象键/值对的数量。 |
| map.keys() | 返回一个 Iterator 对象, 包含了 Map 对象中每个元素的键 。 |
| map.values() | 返回一个新的Iterator对象,包含了Map对象中每个元素的值 。 |
其他ECMAScript 标准提供的内置对象有:Boolean、Error、Date、RegExp 等。
let b: Boolean = new Boolean(1);
let e: Error = new Error('Error occurred');
let d: Date = new Date();
let r: RegExp = /[a-z]/;
DOM 和 BOM 提供的内置对象
DOM 和 BOM 提供的内置对象有:Document、HTMLElement、Event、NodeList 等。
let body: HTMLElement = document.body;
let allDiv: NodeList = document.querySelectorAll('div');
document.addEventListener('click', function(e: MouseEvent) {
// Do something
});
TypeScript 核心库的定义文件
TypeScript 核心库的定义文件中定义了所有浏览器环境需要用到的类型,并且是预置在 TypeScript 中的。
当你在使用一些常用的方法的时候,TypeScript 实际上已经帮你做了类型判断的工作。
用 TypeScript 写 Node.js
Node.js 不是内置对象的一部分,如果想用 TypeScript 写 Node.js,则需要引入第三方声明文件:
npm install @types/node --save-dev