类型 | 实例 | 描述 |
---|---|---|
number | 0,12,-20 | 任意数字 |
string | “hello” | 任意字符串 |
boolean | true/false | 布尔值true/false |
字面量 | 其本身 限制变量的值就是改字面量的值; | 有点类似与const,声明了就不能改 |
any | * | 任意类型,设置为any,相当于对该变量关闭了TS,与js差不多 |
unknown | * | 类型安全的any |
void | 空值(undefined) 没有值(或undefined); | 多用于函数没有返回值 |
never | 没有值 | 不能是任何值,可用于函数报错 |
object | {name:“luca”} | 任意对象;{}用来指定对象中包含哪些属性,属性后加上问好,表示可选 |
array | [1,“fun”,true] | 任意数组 |
tuple | [4,5] | 元组,TS新增类型,固定长度的数组 |
enum | enum{A,B} | 枚举,TS新增类型 |
undefined | undefined | 任意类型的子类型 |
null | null | 任意类型的子类型 |
代码如下:
//let a:number;
//声明一个变量a,变量类型为number;
//a=10;
//a=30;
// a='hello' //会报错,会编译成功,但是会报错,可以编译任意版本的js,保证可以在任意版本浏览器显示正常
let b:string;
b='hello';
//声明变量直接赋值
let c:boolean=false;
//let c=false; 两个写法结果一致,声明完成后ts自动设置类型,返回number结果
function sum(a:number,b:number):number{
return a+b;
}
console.log(sum(123,456));
console.log(b)
//可以使用竖线来连接多个类型
let d:boolean|string;
d=true;
d="hello"
//任意类型,设置了any后相当于ts对该变量关闭类型检测
let e:any;
e=10;
e='sdf'
//声明变量入如果不指定类型,则TS解析器会自动设置为any类型
let f;
f=10;
f='sds'
//unkonw表示位置类型的值
let g:unknown;
g=10;
g='sd';
//e是any类型,可以复制给任意变量
b=e;
//unkown 不能复制给其他类型变量,是一个类型安全的any
//类型断言,用来告诉编译器具体的类型
g=f as string;
//void 用来表示空,表示没有任何返回值
function fn():void{
}
//never 表示永远不会返回结果
function fn2():never{
throw new Error("报错了");
}
//object
let obj:object;
obj={};
obj=function(){
};
let obj1:{name:string,age:number};
obj1={name:'su',age:10};
let obj2:{name:string,age?:number};//加入?表示属性可选
obj2={name:'su'};
//[propName:string]:any表示任意类型的属性
let obj3:{name:string,[propName:string]:any};
obj3={name:'猪八戒',age:18,gender:'男'}
//设置函数结构的类型声明
let obj4:(a:number,b:number)=>number;
obj4=function(a,b):number{
return a+b;
}
//声明字符串数组 两种声明方式
let arr_str:string[];
arr_str=['a','b'];
let arr_str1:Array<string>;
// tuple 元组,固定长度的数组
let tup:[string,string];
tup=['hel','df'];
//enum:枚举 多个数据选择时候适合用enum;
enum Gender{
Male=0,
Female=1
}
let en:{name:string,gender:Gender};
en={name:'df',gender:Gender.Female};
console.log(en.gender===Gender.Female)
//&表示同时
let j:{name:string}&{age:number};
j={name:'孙悟空',age:45};
//类型的别名
type myType=1|2|3|4|5;
let k:myType;
let y:myType;
k=3;