写在前面,用了一段TS了几个项目都在用,强类型会降低项目的开发速度,但是业务的完整性,代码的结构性有很大的好处。所以尝试进行调整总结下。
数据类型,
包含JavaScript的基础类型, number string boolean array object function undefened null
这几项,当然 TS 在此基础之上进行了大量扩展。
boolean
let isDone: boolean = false;
number
TS 这边扩展了二进制和八进制
let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
let binaryLiteral: number = 0b1010;
let octalLiteral: number = 0o744;
string
这个也没啥好说的
let name: string = "bob";
name = "smith";
以及嵌入式表达式,但是在JavaScript里面也早就支持了
let sentence: string = `Hello, my name is ${ name }`
array
好像这个也没有什么要特殊强调的
但是要表明类型在加上一个泛型
let list: number[] = [1, 2, 3];
数组泛型, Array<元素类型>
let list: Array<number> = [1, 2, 3];
同样的
let list: Array<string> = ['a', 'b', 'c']
泛型在代码里其实也没少用
元组 Tuple
元组类型允许表示已知类型和数量 确定的数组
例如:
let x: [string, number];
x = ['Hello', 10]
这个在我的实际代码业务中用的其实并不多
哦这里插一句联合类型在代码中确实用到过
let someOne: number | string = 6
这种就是限定类型 数字或者 是字符串
emum Color {Red, Green, Blue}
let c: Color = Color.Green
或者手动赋值的情况
enum Color {Red = 1, Green = 2, Blue = 4}
let c: Color = Color.Green
any
这个没啥解释的了,任意变量,
let a: any = 'a'
可以是数字字母字符串都行
但是 any 太多不利于类型的定义
Void
一般函数常用表示没有任何类型,一个函数没有返回值的时候是void
function warnUser(): void {
console.log('11111')
}
null 和 undefined 很少使用了,
常规的JavaScript 初始化的时候常用 let somea = null 这种
他们也有各自类型但是不常用
let u:undefined = undefined;
let n:null = null;
never
这个类型更少用了永远达不到终点,很少用,any也不可赋值给never
类型断言
用于你比TS更了解某些业务的类型的时候
有<>语法和as语法这俩种语法,
上面已经见过
let someArr: Array<number> = [1, 2, 3]; 这种
let stringNumer: number = (someValue as string).length;
这种语法,俩种写法都行
补充说明

文章采用 知识共享署名 4.0 国际许可协议 进行许可,转载时请注明原文链接。