1.使用字面量进行类型声明,声明之后不可修改了
let a: 10;
// a = 10 可以 a = 11 不可以
2.可以用 | 来连接多个类型(联合类型)
let c: boolean | string;
// c = true; c = 'hha'; 可以 a = 123 不可以
3.any 任意类型
一个变量设置类型为any后相当于对该变量关闭了TS类型检测
使用ts时,不建议使用any
let d; 声明变量不指定类型,TS解析器会自动判断变量的类型为any
4.unknown 表示未知类型的值
let e: unknown;
// unknown类型的值赋值给别的类型的会报错
5.类型断言,可以告诉解析器变量的实际类型
d = e as string;
或者这样写,都告诉变量e是一个string
d = <string>e;
6.viod 用来表示空,以函数为例,就表示没有返回值的函数
function fn(): void{
// return 就报错
}
7.never 表示永远不会返回结果,可以这样用
function fn1(): never{
throw new Error('报错了')
}
8.对象,{} 用来指定对象中可以包含哪些属性
let obj2 : {
name : string}
obj2 = {
name : '孙悟空'}
在属性名后面加上?,表示属性是可选的
let obj2 : {
name : string , age?:number};
obj2 = {
name : '孙悟空',age:18}
[propName:string]:any 表示任意类型的属性,
obj3里面只要有name属性就行了,想随意加其他的属性都可以
let obj3: {
name:string,[propName:string]:any};
obj3 = {
name:'哈哈',age:18,name2:'james'}
9.箭头函数
const gg = (a:number,b:number) :number =>{
return 1
}
10.数组
let arr1: string[]; //字符串数组
let arr2: number[]; //表示数值数组;
11.元组,就是固定长度的数组
let yz: [string,string];
yz = ['hee','abc'];
12.枚举
enum Gender{
Male = 0,
Female = 1
}
let i: {
name:string,gender:Gender};
i = {
name:'孙悟空',
gender:Gender.Male
}
console.log(i.gender === Gender.Male) //true
13.&表示同时
let jj: {
name:string} & {
age:number};
jj = {
name:'孙悟空',age:18}