TypeScript 学习一类型声明

43 阅读2分钟

全局安装 typescript

npm install typescript -g

# mac 电脑报错,需要加 sudo 然后输入密码
sudo npm install typescript -g

tsc -v
  • 输入 tsc -v 查看版本,发现报错

image.png

  • 查看 node 版本发现,然后切换版本 nvm use 16.16.0

然后重新全局安装,输入 tsc -v 正常输入版本号

image.png

  • 创建 ts-demo 文件夹,新建 index.ts 文件
// index.ts
// 常用基础类型
let num: number = 12 
console.log(num)
let num1: number = Infinity 
// NaN  16进制: 0xf00d  2进制: 0b1010  8进制: 0o744
let str: string = 'abc'
let bol: boolean = true
let un: undefined = undefined
let nu: null = null
// tsconfig.json 中设置为严格模式,严格模式中不允许将 null 赋值给 void 类型
let v1: void = null // void 类型一般声明到函数返回值中
let v2: void = undefined
// 对象类型
let obj: object = { name: '点点' }
// 联合类型
let lh: string | number 
lh = 'str'
lh = 12
// error 不能将 boolean 类型分配给 string | number
lh = true 

终端输入 tsc -w (w: watch)没成功,执行 tsc init 生成 tsconfig.json 文件 执行 tsc -w 则会自动生成 index.js 文件,文件内容如下:

// index.js
"use strict";
let num = 12;
console.log(num);
  • 使用 node 命令,执行 转换后的 js 文件
node index.js
# 终端输出 12

ts-node 第三方工具执行 ts 文件

npm install ts-node -g
sudo npm install ts-node -g

# 生成 package.json
npm init -y 

npm i @types/node -D

ts-node index.ts
# 终端输出值 12

数据类型

// 数据类型:
// any 任意类型 unknown(只能赋值给自身或者 any, 没有办法读取属性、方法) 不知道的类型
// 1. any unknown 均为 top type 顶级类型 
// 2. Object 
// 3. Number, String, Boolean, 
// 4. number, string, boolean
// 5. 1, 'abc', false
// 6. nerver
let a: any = 12
let b: unknown = 'abc'
let c: number = 2

// 皆可
a = c
c = a 
b = a 
b = c
// unknown:只能赋值给自身或者 any
c = b // 不可以

image.png

// unknown 没有办法读取属性、方法
let d: unknown = { a: 12, test () {} }
d.a
d.test()

image.png

image.png