let n1: number = 10;
let n2 = 10.3;
// typescript 中,number数字类型实际上都是浮点数
// 除了支持十进制表示,还支持二进制、八进制、十六进制表示
let decLiteral: number = 2023;
let binaryLiteral: number = 0b11111100111;
let octalLiteral: number = 0o3747;
let hexLiteral: number = 0x7e7;
boolean
let b1: boolean = true;
let b2 = true;
string
// 单引号和双引号都表示字符串
let s1: string = "hello";
let s2: string = 'hello';
any
// 任意类型,什么值都可以传入
let c: any;
c = "hello";
c = 1;
// any类型的值可以传递给任意类型,因为any的意思是任意类型,可以是任何类型
let d: string = c; // 将any类型的c,实际是number类型,传递给一个string类型的d变量不会报错,但是后续操作会出现异常
// 不建议使用any类型
// 未知类型,与any表现类似
let e: unknow;
e = 10;
e = true;
// 但是unknow
let f: boolean;
// f = e; // 虽然他俩的值都是布尔类型,但是未知类型的变量不能赋予其他类型
// 解决办法,进行js的类型判断
// 如果是boolean类型才进行赋值
if (typeof e === 'boolean') {
f = e;
}
// 或者进行ts的类型断言,告诉解析器此类型就是boolean
// 下面两种写法表达的含义相同
f = e as boolean;
f = <boolean>e;
void
设置函数没有返回值:
function test(): void {
}
never
never代表函数永远不会有返回,比较常见的情况有:
函数内部有while(true) {},函数永远不会走完,比如http服务器
函数不会走完,总是抛出异常,function foo() { throw new Error('Not Implemented') }