// 布尔类型
let bool1:boolean = false;
let bool2:boolean;
bool2 = false
// 数值类型,支持二进制,八进制,十六进制的值
let num:number = 1234;
num = 0b1111011;
num = 0o173;
num = 0x7b;
// 字符串类型
let str:string;
str = 'abcd';
str = `数值是${num}`;
console.log(str);
// 数组类型
let arr:number[] = [ 1 , 3 , 5 ];
let arr2:Array<number> = [ 1 , 2 , 3 ];
let arr3:( string | number )[] = [ 1 , 'a' ];
let arr4:Array< string | number> = [ 'a' , 1 ];
// 元组类型,必须按顺序写,一一对应
let tuple : [ string , number , boolean ];
tuple = [ 'a' , 1 , true]; // 2.6版本之前越界元素只要是这个数组中任意一种就行,之后版本无论什么类型越界是不被允许的
// 枚举类型
// enum Roles {
// SUPER_ADMIN,
// ADMIN,
// USER
// };
// console.log( Roles.SUPER_ADMIN ); // 0
// console.log( Roles.ADMIN ); // 1
// console.log( Roles.USER ); // 2
// enum Roles {
// SUPER_ADMIN = 0,
// ADMIN = 5,
// USER = 9
// };
// console.log( Roles.SUPER_ADMIN ); // 0
// console.log( Roles.ADMIN ); // 5
// console.log( Roles.USER ); // 9
enum Roles {
SUPER_ADMIN,
ADMIN = 5,
USER
};
console.log( Roles.SUPER_ADMIN ); // 0
console.log( Roles.ADMIN ); // 5
console.log( Roles.USER ); // 6 // 默认增加
console.log( Roles[5] ); // ADMIN
// any类型
let value:any;
value = true;
value = 1;
value = 'hello world';
let arr5:any[] = [ 1 , true , '2'];
// void类型
const func = ( text:string ):void => { // 不返回任何值,没有return
console.log( text );
}
let voidType:void;
voidType = undefined;
voidType = null; // 这里是可以为null的,需要在tsconfig里面"strict": true注释掉
// undefined和null
let obj:undefined;
obj = undefined;
obj = null;
// obj = 123; // 报错
let obj2:null;
obj2 = null;
obj2 = undefined;
// obj2 = 123 // 报错
// never类型 死循环或者抛出异常时,是任何类型的子类,并且没有子类
let errorFunc = ( message:string ):never => {
throw new Error( message );
};
let infiniteFunc = ():never => {
while(true){}
};
// object类型
let obj3:object = {
name:'zhangsan'
}
// 类型断言,可以有以下两种写法<string>或者as string,react的jsx只支持as写法
let getLength = ( target : string | number ):number => {
if ( ( <string> target ).length || ( target as string ).length === 0 ) {
return ( <string> target ).length;
} else {
return target.toString().length;
}
}
ts基本数据类型
最新推荐文章于 2025-03-31 11:51:58 发布