前言
时间匆匆,距离上次系统学习前端的时候还在3个多月前了,这段时间确实写了不少项目。但是还是觉得前端技术需要打磨,学就完事了奥
基础环境配置请看我上一篇:juejin.cn/post/722632…
1、基础类型
// 测试
// let str:string = "hello ts";
// console.log(str);
// 基本定义以及用法
// 数字类型
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;//八进制
// 字符型
let str: string = 'type';
// 布尔值
let b1: boolean = true;
let b2: boolean = false;
// 其他
let n: null = null;
let un: undefined = undefined;
其实ts还可以这个
let v1: void = null
let v2: void = undefined
let nl: null = null
let a: undefined = undefined
n = a
a = n
但是严格语法下会报错
还记得我们执行过tsc --init就有个tsconfig.json文件
这样就不报错了
此外
// 变量定义为void场景不多,一般为函数
function myFn(): void {
}
2、任意类型
环境准备
我们发现执行npm命令有点受罪
其实可以试着换个包
执行npm i nrm -g安装包
执行nrm ls查看镜像
执行nrm use tencent切换源
这个时候可以执行npm config get registry来查看当前镜像是什么
打开vs code输入npm init -y 会自动生成一个package.json文件
此时我们输入npm i @types/node -D生成完整环境
编写测试代码:
let a:number = 999
console.log(a)
发现错误
PS E:\code\FB> ts-node index.ts ts-node : 无法将“ts-node”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1
-
+ CategoryInfo : ObjectNotFound: (ts-node:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
原因是版本太高改成8.5.4试试
PS E:\code\FB> npm i -g ts-node@8.5.4
added 9 packages, and audited 10 packages in 3s
found 0 vulnerabilities PS E:\code\FB> ts-node index.ts 999
回归
// any 任意类型 unknown 不知道的类型
// 1、top type 顶级类型 any unknown
// 2、Object
// 3、Number String Boolean
// 4、number string boolean
// 5、1 '文字' false
// 6、never
1包含下面所有类型
2包含3456
例子为:
let a:any = {}
a = 1
a = '231'
a = false
a = Symbol(1)
let b:any = []
let c:unknown = 1
当然存在特殊情况
let a:any = 1
let b:number = 5
a = b
b = a // 可以随意赋值
// 但是unknown就会提示错误
let c:unknown = 1
let d:number = 5
c = d
d = c // 可以随意赋值
unknown只能赋值给自身或者是any类型
unknown没有办法读取任何属性 方法也不可以调用
unknown比any更加安全
let xiaoxiao:unknown = {key:true,open:()=>123}
xiaoxiao.key
xiaoxiao.open()
但是any都可以的!
未完待续。。。