TypeScript入门基础(类型断言、内置对象)

类型断言

类型断言(Type Assertion)可以用来手动指定一个值的类型。
语法

<类型>值

值 as 类型

将一个联合类型的变量指定为一个更加具体的类型
我们确实需要在还不确定类型的时候就访问其中一个类型的属性或方法,比如:

function getLength(something: string | number): number {
    if (something.length) {
        return something.length;
    } else {
        return something.toString().length;
    }
}

// index.ts(2,19): error TS2339: Property 'length' does not exist on type 'string | number'.
//   Property 'length' does not exist on type 'number'.
// index.ts(3,26): error TS2339: Property 'length' does not exist on type 'string | number'.
//   Property 'length' does not exist on type 'number'.

上例中,获取 something.length 的时候会报错。

此时可以使用类型断言,将 something 断言成 string:

function getLength(something: string | number): number {
    if ((<string>something).length) {
        return (<string>something).length;
    } else {
        return something.toString().length;
    }
}
//类型断言不是类型转换,断言成一个联合类型中不存在的类型是不允许的

内置对象

ECMAScript 标准提供的内置对象有:BooleanErrorDateRegExp 等。
我们可以在 TypeScript 中将变量定义为这些类型:

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 提供的内置对象有:DocumentHTMLElementEventNodeList 等。
TypeScript 中会经常用到这些类型:

let body: HTMLElement = document.body;
let allDiv: NodeList = document.querySelectorAll('div');
document.addEventListener('click', function(e: MouseEvent) {
  // Do something
});
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、什么是 TypeScript? 百度解释:TypeScript是一种由微软开发的自由和开源的编程语言。它是Ja...
    wave浪儿阅读 2,257评论 1 20
  • 那么我们开始吧, 我们从基础语言类型开始 JavaScript 的类型分为两种:原始数据类型(Primitive ...
    雨飞飞雨阅读 2,589评论 0 4
  • 原始数据类型 boolean、number、string、null、undefined 、 Symbol//空值的...
    墨尘_7阅读 682评论 0 0
  • 一.interface 一般情况: 不允许多属性也不允许少属性 如果想要某个属性可选,可用 ? 任意属性使用 [p...
    JamesSawyer阅读 1,571评论 0 2
  • 前几日,阿东突然发来一张图片,并附以声情并茂的配文:小西,小西,这都是学生送的。阿东快乐的就像一只小麻雀,...
    东西酱阅读 545评论 0 2