Typescript其他数据类型(二)

有时候,不是因为你没有能力,也不是因为你缺少勇气,只是因为你付出的努力还太少,所以,成功便不会走向你。而你所需要做的,就是坚定你的梦想,你的目标,你的未来,然后以不达目的誓不罢休的那股劲,去付出你的努力,成功就会慢慢向你靠近。

导读:本篇文章讲解 Typescript其他数据类型(二),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

目录

Object对象

那我们想添加一个可有可无的属性,如何写?

那我们想添加多个可有可无的属性,如何写?

那定义函数如何限制参数呢?

数组 Array

数组的类型声明

我们想定义任意类型数组咋写?

特殊的数组–元组tuple

枚举enum

补充


Object对象

// object表示一个js对象
let a: object;//一般不用
// 对象一
a = {};
// 对象二,function也代表一个对象
a = function () { };

在开发中我们一般不关心他是不是一个对象,而是关心对象中包含了什么属性

// {} 用来指定对象中可以包含哪些属性,要求赋值的时候定义的结构一模一样,否则就会报错
// 语法:{属性名:属性值,xxx,xxx}
let b: { name: string };
b = {name:'小锁'}

 注意:{} 用来指定对象中可以包含哪些属性,要求赋值的时候定义的结构一模一样,多一个或少一个属性都不行,否则就会报错

那我们想添加一个可有可无的属性,如何写?

属性名后面加一个问号即可就可以表示属性age是可选的,此时不管我们多一个age还是少一个age都不会报错
Typescript其他数据类型(二)

那我们想添加多个可有可无的属性,如何写?

有人说,那我都定义一遍

Typescript其他数据类型(二)

 这样就会显示的很繁琐

此时我们可以用一种方式来表示任意属性

如下: [propName:string]:any  其中propName可以命名为任意名字,例如 [xx:string]:any 也行,仅代表属性名,整体表示任意类型的属性。

Typescript其他数据类型(二)

那定义函数如何限制参数呢?

可以写为类似箭头函数的那种形式

Typescript其他数据类型(二)

 此时我们来定义具体的函数是不会报错的,当然多一个或少一个参数、或者类型又不一样都会报错

 Typescript其他数据类型(二)

 总结:设置函数结构的类型声明如下

 语法:(形参1:类型1, 形参2:类型2,….)=>返回值

对象就讲完啦~


数组 Array

数组的类型声明

1、声明一个数字类型的数组,即 类型+[] 或者 Array<类型> 均可

当里面出现非数字类型数据时就会报错。

Typescript其他数据类型(二)

我们想定义任意类型数组咋写?

用any就好了呀。例如:let c:Array<any>,但不建议使用any,尽量明确类型

 这时候ts的优势就出来了,我们定义一个数组时,他会提示数组相关的所有方法供使用。

Typescript其他数据类型(二)

当有了类型约束之后,我们想要push一个非数字类型的数据是会报错的

Typescript其他数据类型(二)

在js中有一种类数组arguments,他很像数组,但又不是数组,他没有数组那么多的属性和方法,例如

Typescript其他数据类型(二)

 当我们将arguments赋值给arr的时候也是会报错的,由此说明他两不是一个类型

 Typescript其他数据类型(二)


特殊的数组–元组tuple

元组就是固定长度的数组,跟数组非常类似,只不过是将数据类型写到数组里面,

通俗来讲,元组就是一定程度上限制了数据类型的数组

Typescript其他数据类型(二)

元组本身也属于数组,因此同样存在数组的所有属性和方法

Typescript其他数据类型(二)

 当我们push一个字符串或者数字是可以的,因为元组可以被认为是联合类型数组,当push一个布尔值就会报错

Typescript其他数据类型(二)

Typescript其他数据类型(二) 


枚举enum

把所有可能的结果列举出来,通过enum表示他是枚举类型

// 枚举
enum Gender {
  male = 0,
  female = 1,
}
// 使用
// let i: { name: string; gender: 0 | 1 };
// 等价于
let i: { name: string; gender: Gender };
i = {
  name: "小锁",
  gender: Gender.male, // 等价于gender: 0
};

补充

(1)对象中同时拥有多个属性,通过符号 & 来限制

Typescript其他数据类型(二)

 (2)类型的别名

如果我们想对一个属性定义多个可能性的值,像如下写法会显得及其繁琐和重复

let k: 1 | 2 | 3 | 4 | 5;
let l: 1 | 2 | 3 | 4 | 5;

如何解决?我们可以通过设置类型别名的方式来简化冗余的代码

// 类型的别名
type myType = 1 | 2 | 3 | 4 | 5;
let k: myType;
let l: myType;
// 使用
k = 3

此时ts的数据类型就讲完啦,学会了吗~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/149650.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!