TypeScript 基本数据类型

TypeScript: 基本数据类型

在 typescript 中声明一个变量,同时指定它的类型,在以后的使用过程中,该变量的值只能是这种类型

字符串类型

ts 中字符串也可以使用 反引号,用法和 js 一样

let a: string = "aaa";
数字类型

数字类型支持 十进制、十六进制、二进制、八进制

let b: number = 100;
布尔类型
let c: boolean = true;
数组
// 语法一:   string[] 表示该变量全是由字符串组成的数组,同理 number[], boolean[]
let arr1: string[] = ["a","b","c"];

// 语法二:   数组泛型, 同理 Array<string>, Array<boolean>
let arr2: Array<number> = [1,2,3,4,5];
对象
// 语法一: object,定义的对象中可以存放任意个数和类型的属性
let obj1: object = { name: "zs", age: 18 };

// 语法二: { }, 作用同 object
let obj2: {} = { name:"ls",hobby:"code" };

// 语法三: 限制对象中的属性
// 以 obj3 为例,赋值的时候,对象中的属性的个数和类型需要和声明时一致
let obj3: { name:string } = { name:"zs" }

// 语法四: 可选属性,通过在属性名后加 ?,表示该属性是可选的
let obj4: { name: string, age?: number };
obj4 = {
    name: "zs"
}

// 语法五(尽量不用): 通过any设置
// 以 obj5 为例,表示该对象需要name属性,其他属性的个数和类型任意
// [aaa: string] 表示字符串类型的任意属性名
// any 表示任意类型的属性值
let obj5: { name:string, [aaa:"string"]: any }
obj5 = {
    name:"zs",
    age: 18,
    hobby: "code"
}
函数
// 语法一
// 表示 fn1 有两个参数,都是number类型,并且返回值为number类型
let fn1: (a: number,b: number) => number;

fn1 = function(num1,num2) {
    return num1+num2;
}

//语法二
// 表示 fn2 有两个参数,第一个是number类型,第二个是string类型,返回值为string类型
// 括号后面的类型为返回值的类型,默认为 void,表示没有返回值,如果为 never ,表示永远不会返回结果
function fn2(a: number, b: string): string {
    retrun a+b;
}
any 类型
  • any 表示任意类型,一般不建议使用
  • 一个变量设置类型为 any 后,相当于 ts 关闭了对该变量的类型检测
  • any 类型的变量,可以赋值给任意变量,被赋值的变量也会转变成 any
  • 如果只声明变量,不赋值并且不指定类型,则 ts 解析器会自动判断变量的类型为 any
let p: any;
p = 100;
p = true;
p = "hello";
unknown 类型
  • unknown 表示未知类型的值
  • 和 any 的区别就是不会改变其他变量的类型
  • unknown 实际上是一个类型安全的 any
let q: unknown;
q = 123;
q = "hello";
q = true;
-----------------------------------------------------------------------------
//unknown 类型的变量,不能直接赋值给其他变量,需要进行转换
    
let r: string = "aaa";
let s: unknown = "hello";

// 方式一
if(typeof s === "string") {
    r = s;
}

// 方式二: 通过类型断言
r = <string>s;
元组

元组就是固定长度的数组

语法:[类型,类型,…]

let t: [string,string];
t = ["aaa","bbb"];
枚举
enum Gender {
    Male = 0,
    Female = 1
}

let u: { name:string, gender:Gender}
u = {
    name:"zs",
    gender: Gender.Female
}
补充
省略变量类型

如果变量的声明和赋值是同时进行的,那么可以省略变量的类型,ts解析器 会自动解析变量的类型

let d = 100;
只声明变量

如果只声明变量,不对其赋值并且不指定其类型的时候,那么 ts解析器 会将变量的类型解析成 any

即: 变量隐式具有 ”any“ 类型

let e;
不能省略声明变量的关键字
f = 100;   // 这样的书写方式是错误的
联合类型

通过 | 给变量设置多种类型,赋值时可以根据设置的类型来赋值

// f 可以赋值成字符串,数字或布尔值

let f: boolean | string | number;
f = 100;
f = "abc";
交叉类型

通过 & 设置类型,表示该变量既是前者又是后者

let b: { name: string } & { age: number }   表示 j 中要同时有 name属性 和 age属性
通过字面量进行类型声明

使用字面量声明后,该变量只能赋给出的值

let g: 10;
let h: "male" | "female";

g = 10;
h = "male";
h = "female";
类型断言

用于告诉 ts解析器 该变量的实际类型

let r: string = "aaa";
let s: unknown = "hello";
// 语法一: 变量 as 类型
r = s as string;

// 语法二: <类型>变量 
r = <string>s;
类型别名
// 语法: (表示 string类型 起了个别名叫 myType ,可以用 myType 代表 string )
// 如: type myType = string;

type myType = "a" | "b" | "c"| "d"| "e";

let v: myType = "c";

;

// 语法二: <类型>变量
r = s;


##### 类型别名

```typescript
// 语法: (表示 string类型 起了个别名叫 myType ,可以用 myType 代表 string )
// 如: type myType = string;

type myType = "a" | "b" | "c"| "d"| "e";

let v: myType = "c";
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值