基础类型分为:数字、字符串、数组、元组、枚举、Any、Object、Null、Undefined、Never、Void

各种类型写法如下:

1.数字(number)

let num:number = 1;

2.字符串(string)

let str:string = 'test'

3.数组

多种写法

1.类型加中括号, type+[],例:

let arr:number[]=[1,2,3]  // 纯数字数组

2. 数组泛型Array<number>

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

4.元组

表示一个已知元素数量和类型的数组

let yArr:['string',number] = [ 'test', 1 ];  表示有两个已知类型的成员,注意:可只声明,后续通过下标赋值

ps:官网上有说 越界的元素(即通过例:yArr[2]=1或push的方式添加元素)测试报错,暂时保留意见

5.Any

未指定类型,且通过类型推论得不到类型的情况被视为any类型,

let a;  // 未声明类型,且类型推论得不到结果的情况视为any类型,any类型不经过类型检测

6.枚举

enum关键字声明,后续详细说明

7.Object

object表示非原始类型,也就是除numberstringbooleansymbolnullundefined之外的类型。

8.Void

与any相反,表示没有任何类型,声明void类型没什么用,只能给它赋值undefined、null,通常用它来表示函数没有返回值:

function fn():void{

}

9.Null和Undefined

TypeScript里,undefinednull两者各自有自己的类型分别叫做undefinednull。 和 void相似,

它们的本身的类型用处不是很大,默认情况下nullundefined是所有类型的子类型。 就是说你可以把 nullundefined赋值给number类型的变量。

10.Never

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

类型声明相关:

类型推论: 当未明确指出类型时,ts会根据初始值来进行推论,例如:

let num = 1;

此时未明确给出num的类型,但ts会根据你初始值为数字类型而推论出num的类型为number类型,当再次赋值为其他类型时就会报错

num = ‘test’;   //error! Type '"test"' is not assignable to type 'number'

如果声明时未赋值,let num;此时ts无法推论出num的类型,将会认为它是any类型,后面将不会对它进行任何类型检测

类型断言:告诉编译器 “把这个变量当作xx类型来处理”,例如:

function fn(p:number | string):void{
    console.log(p.length)
}
报错:Property 'length' does not exist on type 'string | number'.Property 'length' does not exist on type 'number'.
利用 类型断言改造,告诉编译器把这里当作string来处理:
function fn(p:number | string):void{
    console.log((<string>p).length)
}  // 通过编译
两种写法:<string>p  p as string

typescript之基础类型的更多相关文章

  1. TypeScript 之 基础类型、高级类型

    基础类型:https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/Basic%20Types.html 高级类型:https ...

  2. TypeScript 素描-基础类型

    博文读自 TypeScript 官方文档而来,不具有学习性,仅是本人学习时记录以供日后翻阅 ,有学习TypeScript的朋友还请去看更为详细的官方文档 TypeScript官网文档中的基础类型, T ...

  3. 学习笔记:TypeScript入门——基础类型

    前言: TypeScript官网断断续续看过几遍,不知道项目中如何使用,有机会还是要实践一下.现在再把文档上不懂的知识点理一遍. 基础类型 1.什么是元组Tuple? 元组类型允许表示一个已知元素数量 ...

  4. typescript 添加基础类型的扩展方法

    以时间转换为案例: //声明接口,也是在声明date这个基础类型要定义一个format的扩展方法,不写接口声明会报错 interface Date { Format(fmt:string):strin ...

  5. Typescript基础类型

    1.布尔值__boolean 2.数字__number----除了支持十进制和十六进制字面量,Typescript还支持ECMAScript 2015中引入的二进制和八进制字面量. 3.字符串__st ...

  6. TypeScript学习笔记之基础类型

    从今天开始学习typescript了,记录ts学习点滴,最后,使用ts结合nodejs开发后端应用,一起共勉吧: typescript最新版本2.6,所有演示代码均基于此版本 开始之前确定安装了如下n ...

  7. TypeScript基础类型,类实例和函数类型声明

    TypeScript(TS)是微软研发的编程语言,是JavaScript的超集,也就是在JavaScript的基础上添加了一些特性.其中之一就是类型声明. 一.基础类型 TS的基础类型有 Boolea ...

  8. TypeScript完全解读(26课时)_2.TypeScript完全解读-基础类型

    2.TypeScript完全解读-基础类型 src下新建example文件夹并新建文件.basic-type.ts.截图中单词拼错了.后需注意一下是basic-type.ts 可以装tslint的插件 ...

  9. TypeScript(3)基础类型

    基础类型 TypeScript 支持与 JavaScript 几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用. 布尔值 最基本的数据类型就是简单的true/false值,在JavaScri ...

随机推荐

  1. Cesium 加载天地图

    网上有很多 就是没说 加载天地图需要开发者秘钥,这个需要去天地图官网申请一个就可以了,下面贴上源码 还有就是Cesium也是需要token的哈 <!DOCTYPE html> <ht ...

  2. 【洛谷P2270】奶牛的运算

    题目链接 不难发现,每加一个括号,就相当于把括号内一段区间中的符号反转,于是就是看n-1个符号经过k次区间反转后的状态数,用插板法搞一搞就可以了 #include<iostream> #i ...

  3. Painting The Fence(贪心+优先队列)

    Painting The Fence(贪心+优先队列) 题目大意:给 m 种数字,一共 n 个,从前往后填,相同的数字最多 k 个在一起,输出构造方案,没有则输出"-1". 解题思 ...

  4. Fiddler如何查找登陆的可用cookie用于其他请求?方式一

    测试过程中,如果你的请求权限是通过cookie响应而不是通过token获得,那么使用如下设置: 1.进入fiddler抓取: 2.jmeter中使用cookie 直接放进去就好了,一般浏览器cooki ...

  5. win10如何删除自己设置过的头像

    把      %appdata%\Microsoft\Windows\AccountPictures  输入到地址栏  然后删除你想删除的照片即可

  6. CMU Database Systems - Database Recovery

    数据库数据丢失的典型场景如下, 数据commit后,还没有来得及flush到disk,这时候crash就会丢失数据 当然这只是fail的一种情况,DataBase Recovery要讨论的是,在各种f ...

  7. 堆排序Heapsort的Java和C代码

    Heapsort排序思路 将整个数组看作一个二叉树heap, 下标0为堆顶层, 下标1, 2为次顶层, 然后每层就是"3,4,5,6", "7, 8, 9, 10, 11 ...

  8. 对象与json字符串转换类设计

    public static class JsonNewtonsoft { /// <summary> /// 把对象转换为JSON字符串 /// </summary> /// ...

  9. Redis 操作帮助类

    首先从Nuget中添加StackExchange.Redis包 1.Redis连接对象管理帮助类 using Mvc.Base; using Mvc.Base.Log; using StackExch ...

  10. Windows10下安装Git

    Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理.具体安装步骤如下: 第一步:先从官网下载最新版本的Git 官网地址:https://git-scm.com/do ...