typeScript 的基础类型包含 Boolean、Number、String、nullundefined 以及 ES6 的  Symbol 和 ES10 的 BigInt

下面介绍每种类型的使用和规则

一、字符串类型介绍

// 普通的字符串声明方式
let str:string = 'momo~ssds'
// 也可以使用模版字符串 let str1:string = `模版字符串${str}` console.log('str1 :>> ', str1);

二、数字类型

// 支持十六进制、十进制、八进制和二进制;

let num1: number = NaN; //Nan
let num2: number = 454555; //普通数字
let num3: number = Infinity; //无穷大
let num4: number = 456 //十进制
let num5: number = 0xf00d; //十六进制
let num6: number = 0b1010; //二进制
let num7: number = 0o744; //八进制s

三、布尔类型

// 布尔类型
// 注意,使用构造函数 Boolean 创造的对象不是布尔值: // let createdBoolean: boolean = new Boolean(1)
//这样会报错 应为事实上 new Boolean() 返回的是一个 Boolean 对象 // 事实上 new Boolean() 返回的是一个 Boolean 对象 需要改成 let createdBoolean: Boolean = new Boolean(1)
let booleand: boolean = true //可以直接使用布尔值

这里需要注意这个

4.空值类型

js 中没有空值(Void)的概念,在 TypeScript 中,可以用 void 表示没有任何返回值的函数

function voidFn(): void { // 这里的void 就表示此函数的返回值为空值
console.log('test void')
}

当一个函数无需返回值的时候我们就可以给这个函数定义成空值返回

另外 void也可以定义undefined 和 null类型

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

但是当我们给void 定义成null的时候,报错了,这个是因为ts的严格模式下是不允许给void 设置成null的,要放开这个限制,可以修改tsconfig.json 文件把严格模式去掉

我们把这一行去掉后,发现就不报错了

5.Null和undefined类型

// null 和underfined 也是基础类型 我们是可以这么写的
let u: undefined = undefined; //定义undefined
let n: null = null; //定义null

void 和 undefined 和 null 最大的区别

与 void 的区别是,undefined 和 null 是所有类型的子类型。也就是说 undefined 类型的变量,可以赋值给 string 类型的变量:

比如我们这么写会报错的

//下面这么写就可以
let test: null = null
let num2: string = "1" num2 = test //或者这样的
let test: undefined = undefined
let num2: string = "1" num2 = test

6、Any 类型 和 unknown 顶级类型

any类型就是无法确定是哪种类型的时候就可以使用,其实变相告诉ts不要去检查这个变量的类型

let anys: any = 123
anys = '123'
anys = true
anys = {a:1}
 
// 那么当我们没有声明一个变量的类型的时候默认就是any类型 这么写是可以的 但是不推荐
let any1
any1 = 1
any1 = '1223'

TypeScript 3.0中引入的 unknown 类型也被认为是 top type ,但它更安全。与 any 一样,所有类型都可以分配给unknown

unknow  unknow类型比any更加严格当你要使用any 的时候可以尝试使用unknow

//unknown 可以定义任何类型的值
let value: unknown; value = true; // OK
value = 42; // OK
value = "Hello World"; // OK
value = []; // OK
value = {}; // OK
value = null; // OK
value = undefined; // OK
value = Symbol("type"); // OK //这样写会报错unknow类型不能作为子类型只能作为父类型 any可以作为父类型和子类型
//unknown类型不能赋值给其他类型
let names:unknown = '123'
let names2:string = names //这样就没问题 any类型是可以的
let names:any = '123'
let names2:string = names //unknown可赋值对象只有unknown 和 any
let bbb:unknown = '123'
let aaa:any= '456' aaa = bbb

还有一个需要注意的是,如果对象被定义成any和unknow 表现是不一样的,定义成unknow 类型的对象是无法直接使用对象中的属性和方法的

// 如果是any类型在对象没有这个属性的时候还在获取是不会报错的
let obj: any = { b: 1 }
obj.a // 如果是unknow 是不能调用属性和方法 下面的这个写法是会报错的
let obj1: unknown = { b: 1, ccc: (): number => 213 }
obj1.b
obj1.ccc()

下一节介绍接口和对象类型

typeScript 基础类型 (三)的更多相关文章

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

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

  2. Typescript基础类型

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

  3. 2022.07.25 TypeScript基础类型介绍

    基础类型: 字符串(string)(String) let first: string = 'niu' // 直接赋值 let fourth: string = `niu` // 模板字符串 let ...

  4. typescript基础类型(学习笔记非干货)

    布尔值 Boolean let isDone:boolean=false; 数字 Number let decLiteral:number=6; let hexLiteral:number=0xf00 ...

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

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

  6. 使用Typescript重构axios(三)——实现基础功能:处理get请求url参数

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

  7. TypeScript 素描-基础类型

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

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

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

  9. { MySQL基础数据类型}一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型

    MySQL基础数据类型 阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己 ...

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

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

随机推荐

  1. 学习设计微服务:api认证

    前言最近再学习微服务,所以把自己的个人站点https://www.ttblog.site/拆分成微服务.目前正在思考微服务里面的认证与授权,网上百度到都是根据用户名和密码来实现的,考虑到实际的原因,我 ...

  2. 充分利用HarmonyOS NEXT:开发者的全功能指南

    随着技术的不断进步,开发者们面临着如何在复杂的技术环境中创造出卓越应用的挑战.在当今的科技浪潮中,如何抓住创新的机遇?HarmonyOS NEXT的发布,带来了全新的机遇和功能.本文将探讨开发者如何充 ...

  3. GPG 用法

    GPG (GnuPG) 是一种加密工具,用于数据加密和数字签名. 密钥配置 # 生成密钥 gpg --full-generate-key # 列出密钥 gpg --list-keys # 列出公钥 g ...

  4. 【Python爬虫】之爬取页面内容、图片以及用selenium爬取

    下面不做过多文字描述: 首先.安装必要的库 # 安装BeautifulSoup pip install beautifulsoup4 # 安装requests pip install requests ...

  5. Kubernetes-9:Service介绍及演示

    Service Kubernetes 的Service定义了这样一种抽象:一个 Pod 的逻辑分组,一种可以访问他们的策略 -- 微服务,这一组Pod能够被Service访问到,通常是通过tabel ...

  6. JMonkeyEngine3 Android 旋转 、放大、缩小一个方块 demo 版本3.5.2-stable

    1. Class,里面是旋转的逻辑,很简陋,可以自己优化 import android.util.Log; import com.jme3.app.SimpleApplication; import ...

  7. freebsd 上硬盘操作

    列出硬盘 # egrep 'ad[0-9]|cd[0-9]' /var/run/dmesg.boot or # geom disk list or # camcontrol devlist 查看cac ...

  8. 熔断、限流、降级 —— SpringCloud Hystrix

    概述 Hystrix 为 微服务架构提供了一整套服务隔离.服务熔断和服务降级的解决方案.它是熔断器的一种实现,主要用于解决微服务架构的高可用及服务雪崩等问题 Hystrix 的特性如下: 服务熔断:H ...

  9. 总结篇4:redis 核心数据存储结构及核心业务模型实现应用场景

    总结篇4:redis 核心数据存储结构及核心业务模型实现应用场景 redis 和memcached 有什么区别?为什么在高并发下,单线程的redis 比多线程的效率高? mc 可以缓存图片和视频,re ...

  10. JavaScript – 类型转换

    介绍 JS 是弱类型语言, 在编程时, 有许多自动类型转换的技巧, 虽然大家都不太鼓励, 尤其是用了 TypeScript 之后, 但无可否认自动转换很方便, 看上去也很干净. 所以这篇还是要介绍一些 ...