当前位置: 首页 > article >正文

学习TypeScrip1(基本类型)

TS是JS的超集,所以JS基础的类型都包含在内
起步安装 npm install typescript -g
运行tsc 文件名

nodejs 环境执行

ts npm i @types/node --save-dev (node环境支持的依赖必装)

npm i ts-node --g

基础类型:Boolean、Number、String、null、undefined 以及 ES6 的  SymbolES10BigInt

1.字符串类型


字符串是使用string定义的

let a: string = '123'
//普通声明
 
//也可以使用es6的字符串模板
let str: string = `dddd${a}`


其中 ` `(反引号)用来定义 ES6 中的模板字符串,${expr} 用来在模板字符串中嵌入表达式。

2.数字类型


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

let notANumber: number = NaN;//Nan
let num: number = 123;//普通数字
let infinityNumber: number = Infinity;//无穷大
let decimal: number = 6;//十进制
let hex: number = 0xf00d;//十六进制
let binary: number = 0b1010;//二进制
let octal: number = 0o744;//八进制s


3.布尔类型


注意,使用构造函数 Boolean 创造的对象不是布尔值:

let createdBoolean: boolean = new Boolean(1)
//这样会报错 应为事实上 new Boolean() 返回的是一个 Boolean 对象 


事实上 new Boolean() 返回的是一个 Boolean 对象 需要改成

let createdBoolean: Boolean = new Boolean(1)

let booleand: boolean = true //可以直接使用布尔值
let booleand2: boolean = Boolean(1) //也可以通过函数返回布尔值


4.空值类型


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

function voidFn(): void {
    console.log('test void')
}


void 类型的用法,主要是用在我们不希望调用者关心函数返回值的情况下,比如通常的异步回调函数

void也可以定义undefined 和 null类型

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


5.Null和undefined类型

let u: undefined = undefined;//定义undefined
let n: null = null;//定义null


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

//这样写会报错 void类型不可以分给其他类型
let test: void = undefined
let num2: string = "1"

num2 = test
//这样是没问题的
let test: null = null
let num2: string = "1"
 
num2 = test
 
//或者这样的
let test: undefined = undefined
let num2: string = "1"
 
num2 = test


TIPS 注意:
如果你配置了tsconfig.json 开启了严格模式

{
    "compilerOptions":{
        "strict": true
    }
}


 null 不能 赋予 void 类型 


http://www.kler.cn/a/154213.html

相关文章:

  • springboot第82集:消息队列kafka,kafka-map
  • Ubuntu22.04基于ROS2-Humble安装moveit2教程(亲测)
  • 微信小程序之路由跳转传数据及接收
  • Python中的正则表达式教程
  • gitlab和jenkins连接
  • 三十九、Python(pytest框架-中)
  • 论文阅读——Img2LLM(cvpr2023)
  • flink源码分析之功能组件(四)-slot管理组件II
  • Linux 匿名页反向映射
  • SpringBoot+redis实现接口防刷
  • Web前端 ---- 【Vue】(组件)父子组件之间的通信一文带你了解
  • 【C语言:数据在内存中的存储】
  • xilinx系列FPGA基于VIVADO的pin delay列表生成说明
  • 2017年全国硕士研究生入学统一考试管理类专业学位联考英语(二)试题
  • 基于helm的方式在k8s集群中部署gitlab - 备份恢复(二)
  • 【Java Spring】SpringBoot 配置文件
  • 速通MySql
  • 熬夜会秃头——beta冲刺Day4
  • MySQL备份与恢复(重点)
  • Golang笔记|Atomic
  • 【一周安全资讯1202】信安标委发布《网络安全标准实践指南—网络安全产品互联互通 告警信息格式》;网络安全纳入注册会计师考试科目
  • Android 手机屏幕适配方式和原理
  • (一)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • 【UGUI】Unity为下拉菜单添加选项(DropDown)
  • SQL Server对象类型(7)——4.7.触发器(Trigger)
  • 自定义类型-结构体,联合体和枚举-C语言