let decimal:number=6;let hex:number=0xf00d;let binary:number=0b1010;let octal:number=0o744;let big: bigint =100n;
字面量示例:
let b:"male"|"female";
b ="male";// 正确
b ="female";// 正确
b ="hello";// 错误
any、unknown示例:
let d:any;
d =5;let s:string;
s = d;// any 可以赋值给任何变量【严重的问题,会污染别的变量类型】let e: unknow;
e =5
s = e;// 会报错,unknown不会污染类型// 如果非要进行赋值,可以进行一次类型检查if(typeof e ==="string"){
s = e;// 不报错}// 或者对unknown 使用类型断言
s = e asstring;// 注意,只有unknown能使用类型断言
s =<string>e;// 效果同上
void never 示例:
// void表示返回空functionfun():void{}// never表示永远不会返回结果functionfun2(): never {throwException("出错辽");}
object 示例:
// {} 用来指定对象中可以包含哪些属性// 语法:{属性名:属性值,属性名:属性值}// 在属性名后边加上?,表示属性是可选的let b:{name:string,age?:number}
b ={name:"yyb",age:18};// 上面这种语法存在的问题是,需要将每个类型一一指出// 可以使用 [propNmae:string]:any 表示 任意属性let c:{name:string,[propName:string]:any}
c ={name:"yyb",age:18,gender:"male"}