IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> TypeScript精髓解读:基础类型 -> 正文阅读

[JavaScript知识库]TypeScript精髓解读:基础类型

本文的价值在于,基于官方文档,作一种更为通俗和易于理解的解读,使得读者能够用最小的时间和精力成本,把握TypeScript基础类型的精髓。

假设作为开发者的你,已经下了很多决心来学习TypeScript,可是你并没有恒心学下去,并且你感觉抓不住重点,不太喜欢查阅散乱的文档。譬如,一般而言,学习都会从基础类型开始,每当你查看官方文档的时候,你都没有耐心读下去。那么你可以试试看看这篇文章——作者的总结。

第一章?你知道TypeScript分为哪些基础类型吗

我们可以把TypeScript的基础类型分为两类:

一类是在JavaScript中有的,对此我们已经司空见惯:

布尔值、数字、字符串、null、undefined、Object、数组等,

另一类则是TypeScript中才有的:

元组、枚举、Any、Void、Never。

第二章?我怎么记忆这些类型

事实上,并不需要特别的去一个个的记忆,比较推荐按照分类的方式来理解性记忆。

(一)首先,我们可以分出一类,这一类的基础类型,声明变量时只需要在变量后面加上冒号和类型即可,如下:

  1. ?布尔值:
     let isDone: boolean = false;
  2. 数字:?
     let decLiteral: number = 6;

? ? 3.字符串:

let name: string = "bob";

? ? ?4.Undefined?:

let u: undefined = undefined;

? ? ? 5.Null:

let n: null = null;

? ? ? ?6.Object:

let a: object = { name: "jack" };

(二)第二类是稍微复杂点的:

  1. ? ?数组:
    let list: number[] = [1, 2, 3];

    数组的声明,首先需要在变量list后面加上冒号和[],以表明是数组,还需要在[]前面加上表示每一个数组成员的类型,如number;

    还有另外一种表示方法:

    let list: Array<number> = [1, 2, 3];

    即在变量list的后面加上冒号和Array,以表明是数组,然后在Array的后面加上尖括号,里面写死每个数组成员的类型number。

    你可能会有疑问,按照JavaScript的惯性思维,如果数组成员的类型并不相同,又该如何表示呢?别急,可以在使用any,见后面。

  2. 元组Tuple:
let x: [string, number];

????????即在变量list后面加上冒号和[],在[]里面加上元组成员的类型,如string、number;

(三)TypeScript独有的:

  1. 枚举:
    enum Color {Red, Green, Blue}
    let c: Color = Color.Green;

    Color这个类型我们需要先定义,enum?Color表明我们定义了一个枚举类型叫做Color,这个类型的变量取值只能是Red、Green、Blue之一。
    你可能会问,那Color.Red、Color.Green、Green.Blue的取值是多少呢,事实上,默认值将分别是0、1、2,即有点像数组的索引值。
    如果,你不想要这样的值,只需要再定义枚举时指定即可:

    enum Color {
      Red = "red",
      Green = "green",
      Blue = "blue",
    }

    下面的let c一句表明,c将是枚举类型Color,即c的取值只能是?Color.Red、Color.Green、Green.Blue之一,也就是说必须是这样写,哪怕值一样也不行:

    let c: Color = "green";

    这样的写法就不行,而应改成

    let c: Color = Color.Green;

    另外,枚举成员的类型不是都为索引时,每一个都必须指定值:

     enum Color {
       Red = '1',
       Green,
       Blue = '2',
     }
    // 错误,不是都为索引值,这时green必须指定值
    enum Color {
      Red = 0,
      Green = "2",
      Blue,
    }
    // 错误,不是都为索引值,这时blue必须指定值
  2. Any:

    let notSure: any = 4;
    
    let list: any[] = [1, true, "free"];

? ? ? ? ? ?即any类型的变量可以被赋值为任意值。?

??????3.Void:

let unusable: void = undefined;

? ? ? ? ? Void类型的变量只能为它赋予undefinednull。

function warnUser(): void {
    console.log("This is my warning message");
}

? 当一个函数没有返回值时,可将其返回值类型设为?void。

????????4.Never:

// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
    throw new Error(message);
}

// 推断的返回值类型为never
function fail() {
    return error("Something failed");
}

// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
    while (true) {
    }
}

never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型; 变量也可能是?never类型,当它们被永不为真的类型保护所约束时。

第三章?什么是类型断言

断言解决的问题是,传递给我们的值的类型可能是不确定的,可是我们需要某一种确定类型的值。

let someValue: number | string = "1234";

// 尖括号语法
let strLength: number = (<string>someValue).length;

// as语法
let strLength: number = (someValue as string).length;

上面的情况,我们希望取string类型的someValue的length,可是someValue实际上是可以取number的,number没有length属性,因此我们加上了断言,要求传入的someValue必须是string类型,即我们自己要确保someValue的实际取值是string类型。

全文完。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-29 08:59:40  更:2021-08-29 09:01:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:15:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码