基础类型分为:数字、字符串、数组、元组、枚举、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. 深度讨论i++问题

    例题1:下列程序的输出结果是多少? public class Test { static { int x = 5; } static int x, y; public static void main ...

  2. mybatis or的用法

    @Test public void test3(){ CaseSmallListExample caseSmallListExample = new CaseSmallListExample(); c ...

  3. Java8新特性 (一)Lambda

    目录 一.Lambda介绍 二.Lambda用法实例 三.Lambda变量作用域 前言: 这两天彻底的复习了一遍Java8的各种新特性,趁着热乎劲,把知识点整理成博客的形式保存一下. 一.Lambda ...

  4. pyqt5设置背景图片出现问题

    在使用pyqt5时,用qtdesign设置好背景图片,如何设置自行百度,预览没问题,用ptuic5转换为代码却发现显示不了: 首先:我在qtdesign中导入的是pic.qrc,但是转换的代码最后一句 ...

  5. pgsql 聚合函数array_to_string,ARRAY_AGG

    array_to_string--将sql中的数组转为字符串 ARRAY_AGG--将sql中的数据转为数组处理 以下给大家一个简单的例子即可体会: 1.需求     2.数据库中原数据   1.pn ...

  6. 范仁义html+css课程---5、列表

    范仁义html+css课程---5.列表 一.总结 一句话总结: 学会基本的使用有序列表.无序列表.定义列表,设置样式的话尽量通过css而不是属性 1.无序列表基本形式(实例)? ul标签包裹li标签 ...

  7. vs2015编译OBS-Studio

    编译之前的准备: 系统win10 QT5.7.0 VS2015 CMake 3.13.4 obs vs2015环境依赖包:dependencies2015 obs-studio 24.0 ====== ...

  8. Dolly

    dolly - 必应词典 美['dɑli]英['dɒli] n.洋娃娃:(搬运重物的)台车 v.用独轮车运(物):用搅拌棒洗(衣):用捣棒捣碎(矿石) 网络多莉:多利:移动式摄影小车 变形复数:dol ...

  9. 蓝绿部署、A/B测试以及灰度发布(金丝雀发布)

    过去的10多年里,很多大公司都在使用蓝绿部署,安全.可靠是这种部署方式的特点.蓝绿部署虽然算不上”Sliver Bullet“,但确实很实用.在有关于“微服务”.“DevOps”.“Cloud-nat ...

  10. java 库 pdfbox 将 pdf 文件转换成高清图片方法

    近期需要将 pdf 文件转成高清图片,使用库是 pdfbox.fontbox.可以使用 renderImageWithDPI 方法指定转换的清晰度,当然清晰度越高,转换需要的时间越长,转换出来的图片越 ...