前言:

TypeScript官网断断续续看过几遍,不知道项目中如何使用,有机会还是要实践一下。现在再把文档上不懂的知识点理一遍。

基础类型

1.什么是元组Tuple?

元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。

//声明一个元组类型
let x: [string, number]; //初始化正确
x = ['hello', 10]; //OK //初始化错误
x = [10, 'hello']; //Error //初始化正确
x = ['world', 11]; //OK

2.什么是枚举?

enum类型是对JavaScript标准数据类型的一个补充。使用枚举类型可以为一组数值赋予友好的名字。

enum Color {Red = 1, Green = 2, Blue = 4}
let c: Color = Color.Green; let colorName: string = Color[2];

3.Any类型

不希望类型检查其对这些值进行检查而是直接让它们通过编译阶段的检查。

let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false;

和Object类型的变量的不同:

notSure.ifItExists(); //okay
notSure.toFixed(); //okay let prettySure: Object = 4;
prettySure.toFixed(); //Error

当你只知道数组中一部分数据的类型时:

let list: any[] = [1, true, "free"];
list[1] = 100; //okay

4.Void类型

与any类型相反,它表示没有任何类型。

function warnUser(): void {
console.log("这是我的提示信息!");
}

只能赋予它undefined和null

let unusable: void = undefined;

5.NUll和Undefined

null和undefined默认是所有类型的子类型,就是说你可以把null和undefined赋值给number类型的变量

let u: undefined = undefined;
let n: null = null;

指定--strictNullChecks标记,null和undefined只能赋值给void和它们各自。

6.Never

never类型表示永不存在的值的类型。

// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
throw new Error(message);
} // 推断的返回值类型为never
function fail() {
return error("Something failed");
} // 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
while (true) {
}
}

7.Object表示非原始类型

declare function create(o: object | null): void;
create({prop: 0}); //OK
create(null); //OK create(42); //Error
create("string"); //Error
create(false); //Error
create(undefined); //Error

8.类型断言

“相信我,我知道自己在干什么”,类型断言好比其它语言里的类型转换。

类型断言有两种形式

(1)尖括号语法

let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;

(2)as语法

let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;

9.尽可能地使用let来代替var

(完)

学习笔记:TypeScript入门——基础类型的更多相关文章

  1. Redis学习笔记(3) Redis基础类型及命令之二

    1. 集合类型 集合类型与列表类型有很多相似之处,但二者的区别在于:前者具有唯一性,但不具有有序性:后者具有有序性,但不具有唯一性.集合类型的常用操作是向集合中加入或删除元素.判断某个元素是否存在等, ...

  2. Redis学习笔记(2) Redis基础类型及命令之一

    1. 基础命令 (1) 获取符合规则的键名列表 格式为:KEYS pattern 其中pattern表示支持通配符 # 建立一个名为bar的键 > SET bar OK # 获取Redis所有键 ...

  3. Redis学习笔记之入门基础知识——其他特性

    1.订阅(subscribe)与发布(publish) 用户订阅某一个频道,频道发布新的信息时,会将信息告知用户 2.数据安全 1)     快照持久化(时间点转储,实质是数据副本) 操作:SAVA. ...

  4. Redis学习笔记之入门基础知识——五种数据类型

    1) 字符串 SET设置值,GET获取值,DEL删除值 INCR key-name将键存储的值加上1       DECR key-name将键存储的值减去1 INCRBY key-name amou ...

  5. Redis学习笔记之入门基础知识——简介

    非关系型数据库,存储的数据类型:字符串(STRING).列表(LIST).集合(SET).散列表(HASH).有序集合(ZSET) 持久化:时间点转储(point-in-time-dump)(快照). ...

  6. 卷积神经网络(CNN)学习笔记1:基础入门

    卷积神经网络(CNN)学习笔记1:基础入门 Posted on 2016-03-01   |   In Machine Learning  |   9 Comments  |   14935  Vie ...

  7. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  8. MongoDB学习笔记:快速入门

    MongoDB学习笔记:快速入门   一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...

  9. Java学习笔记:语言基础

    Java学习笔记:语言基础 2014-1-31   最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...

随机推荐

  1. 如何在 Highcharts 图中当所占百分比为 0 时不显示0%

    解决办法其实很简单,将enabled属性改为false即可: dataLabels: { enabled: false } 完成之后的显示如下

  2. XTUOJ 1238 Segment Tree

    Segment Tree Accepted : 3 Submit : 21Time Limit : 9000 MS Memory Limit : 65536 KB Problem Descriptio ...

  3. linux ifconfig找不到

    提示命令不存在 原因: 系统默认的环境变量设置不对 而,ifconfig恰恰就在/sbin里面. 下cat /etc/profile, 可以发现没有关于/sbin的环境变量. Linux,习惯用ged ...

  4. 发送邮件被退回,提示: Helo command rejected: Invalid name 错误

    我自己配置的 postfix + dovecot server, 配置了outlook 后, 相同的账号. 在有的电脑上能收发成功, 在有的电脑上发送邮件就出现退信.提示 Helo command r ...

  5. 使用Gmail邮箱

    由于国内不能直接访问google,所以其相关产品也不能直接使用.因为Gmail简洁,使用方便,国际上用的人很多.最近发现网易邮箱大师可以直接访问Gmail,所以将方法介绍给大家,如果大家只有访问Gma ...

  6. Android自己定义动态布局 — 多图片上传

    Android自己定义动态布局 - 多图片上传 本文介绍Android中动态布局加入图片,多图片上传. 项目中效果图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5 ...

  7. windows10系统下设置mtu值的方法

     windows10系统下设置mtu值的方法 http://www.xitongcheng.com/jiaocheng/win10_article_34701.html 以下为服务器上使用  ip ...

  8. BZOJ 4582 贪心

    思路: 显然是个贪心 排个序 然后扫几遍就好了 (重叠的区间不能取) //By SiriusRen #include <cstdio> #include <algorithm> ...

  9. 洛谷P2818 天使的起誓

    题目描述 Tenshi非常幸运地被选为掌管智慧之匙的天使.在正式任职之前,她必须和其他新当选的天使一样要宣誓.宣誓仪式是每位天使各自表述自己的使命,他们的发言稿放在n个呈圆形排列的宝盒中.这些宝盒按顺 ...

  10. JavaScript--数据结构与算法之散列

    散列:实现散列表的数据后可以快速地实现插入或者删除.但是对于实现查找操作则效率非常的低.散列表的底层是数组实现的,长度是预先设定,可以随时根据需求增加.所有的元素根据和该元素对应的键,保存在特定的位置 ...