TS 基础(一)

今天开始学一遍 @小满zs 的TS课程,在这里记录一下。
TS是JS的超集,所以JS基础的类型都包含在内。

npm i typescript -g		// 安装 TS
tsc -v					// 查看 TS 版本
tsc --init				// TS 初始化 配置文件
tsc -w					// 	ts 转 js 监听

node index.js			// 运行 js文件

npm i ts-node -g
npm init -y				// 生成 package.json 文件
npm i @types/node -D	// 声明文件

ts-node index.ts		// 直接运行 ts文件

一、基础类型

1.1 字符串类型(string)

let str: string = '鱼钓猫'

1.2 数字类型(number)

支持十六进制、十进制、八进制、二进制。
NaN 与 Infinity 也属于 number 类型。

let num1: number = 123

let num2: number = NaN
let num3: number = Infinity // 无穷大
let decimal: number = 6; // 十进制
let hex: number = 0xf00d; // 十六进制
let binary: number = 0b1010; // 二进制
let octal: number = 0o744; // 八进制

1.3 布尔类型(boolean)

let bool: boolean = true

1.4 空值类型(null undefined void)

let nul: null = null
let unde: undefined = undefined
// void 通常用于函数返回值的定义,表示没有返回值。
function Fn (): void {
	/** 函数体 */
	return
}

非严格模式下

let aa: void = null
let bb: void = undefined

nul = unde
unde = nul

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

let str: string = "鱼钓猫"
let aa: void = null
str = aa // warning 不能将类型“void”分配给类型“string”。

let nul: null = null
let unde: undefined = undefined
// 非严格模式下
str = nul
str = unde

二、顶级类型 any unknown

  • top type顶级类型:any unknown
  • 一级:Object
  • 二级:Number String Boolean 实例
  • 三级:number string boolean
  • 四级:1 ‘鱼钓猫’ true
  • 五级:never
  1. any 类型的值可以任意赋值,unknown 类型的值只能赋值自身或是 any 类型值。
let str: string = "鱼钓猫"
let unk: unknown = {}
let any: any = {}

str = any	// √
str = unk	// warning:不能将类型“unknown”分配给类型“string”。
  1. unknown 类型没有办法读取任何属性,也无法调用方法,所以比 any 更加安全
let unk: unknown = {name: '鱼钓猫', fn: () => 1243}
unk.name	// error “unk”的类型为“未知” 直接运行报错

扩展:Object、object 和 {} 的区别

  • Object:包含了所有的值。原型链中所有的原始类型和对象类型都指向 Object。
let obj1: Object = 123
let obj2: Object = "123"
let obj3: Object = false
let obj4: Object = {}
let obj5: Object = []
let obj6: Object = () => 123
  • object:常用于泛型约束,代表非原始类型(引用类型)。
let obj4: object = {}
let obj5: object = []
let obj6: object = () => 123
  • {} 字面量:可以理解为 new Object(),和 Object 差不多,可以赋任意值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值