二、TypeScript语法一


一、TypeScript类型声明基本语法

1.1 TS的类型声明

先声明变量再赋值

let aa:boolean;
a=false;

声明的同时进行赋值

let b:number=2;

这是上面那种的简写
声明和赋值同时进行ts会自动为我们进行声明

let cc = false;
cc=1; //此时会报错,上面那里隐式给cc声明了类型boolean

函数的参数声明和返回值类型声明

// 这里最后一个:string是函数的返回值
function fun(num1:number, string1:string):string{
    console.log(`${num1}${string1}`);
    return `${num1}${string1}`;
}
fun(1,"number");

1.2 TypeScript的基础类型

1.2.1 number类型

数字类型统为一number,TypeScript和JavaScript一样,不区分整数,浮点数和双精度浮点数(int, float, double)

let num1:number = 100;
// 0b表示二进行 0、1
let num2:number = 0b100;
// 0o表示八进制 0-7
let num3:number = 0o107;
// 0x表示十六进制 0-10、A-F
let num4:number = 0x100F;
let num5:number = 88.88;

console.log(num1);
console.log(num2);
console.log(num3);
console.log(num4);
console.log(num5);

输出结果:

PS C:\source\TypeScript\demo01> ts-node demo.ts
100
4    
64   
4111 
88.88

1.2.2 boolean类型

表示逻辑值:true或false

1.2.3 string类型

一个字符系统,使用单引号(')或双引号(")来表示字符串类型,反引号(`)来定义多行文本和内嵌表达式。

let name:string="tom";
let age:number=25;
let introduce:string=`我的名字叫${name},今年${age}岁了`;
console.log(introduce);

输出结果:

PS C:\source\TypeScript\demo01> ts-node demo.ts
我的名字叫tom,今年25岁了

1.2.4 数组

语法:

  • 数据类型[]
  • Array<类型>
let arr01: string[];  //字符串数组
let arr02: number[];  //数值数组
let arr03: Array<number>; //数值数组

1.2.5 特殊类型

null:表示对象值缺失。
undefined:用于初始化变量为一个未定义的值。
never:never是其他类型(包括null和numdefined)的子类型,代表从不会出现的值。
any:表示任意类型
any表示任意类型,一个变量设置any相当于对该变量关闭ts类型检测。

let aa:any;
let bb; //声明变量不指定类型,则ts解析器会自动判断变量的类型为any(隐式any)
bb=10;bb="haha";bb=true;

unknow表示未知类型,要么赋值给any,要么赋值给unknow类型
never表示永远不会有返回结果

function fun():never{
    // 报错没有返回值的
    throw new Error("直接报错!");
}

1.2.6 Object

Object表示一个对象,但是在js中万物皆对象function、array等

let obj: object;
obj = {};
obj = function(){};
let obj2:{name:string,age?:18};
obj2 = {name:'张三'};

let obj3:{name:string,[propName:string]:any};
obj3 = {name:'李四', age: 18, sex: true};
console.log(obj3);

输出结果:

PS C:\source\TypeScript\demo01> ts-node demo.ts
{ name: '李四', age: 18, sex: true }

PS:

  • {}用来指定对象中可以包含那些属性
  • {属性名:属性值,…}
  • 在属性后边加上?,表示属性是可选的

定义一个箭头函数

// 定义一个箭头函数,相当于函数对象类型
let fun1:(a:number, b:number) => number;
// 这个函数对象类型具体的实现
fun1 = (n1, n2) => n1 * n2;
// 调用这个函数
console.log(fun1(1, 3));

PS: 上例中的函数好像一个接口,按照这个接口的规范可以有不同的实现。

1.2.7 联合类型

可以使用|连接多个类型

let b: 'sex' | 'girl';
// b = 10;  此时b就不能再等于其他值,要么是sex要么是girl
b = 'sex';

// 要么是布尔值,要么是字符串类型
let c:boolean|string;
c = true;
c = "hello";

// c = 12 报错

console.log(b);
console.log(c);

// 定义一个函数,参数和返回值都可以是联合类型
function fun88(a:number|string, b:number|string):void|number{}

// 联合类型的数组
let arr:(string|number|boolean)[] = ['abc', true, 6, 'aaa'];
arr.push('gaga');
arr.push(5);
arr.push(false);
console.log(arr);

&同时

// 需要同时满足name为string类型并且age为number类型
let j:{name:string}&{age:number};
// 必须要有name和age少一个或者类型不对都会报错
j = {name:"张三", age: 20};
// j = {name:"李四"}; 报错
console.log(j);

字面量进行类型声明

let a:10;
a = 11; //措错此时a就只能等于10
let sex: 'female' | 'male' //只能使用固定值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永恒的宁静

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值