TypeScript中数组类型的定义

TypeScript中数组类型的定义

现在我们可以定义一个最简单的数组类型,比如就是数字类型,那么就可以这么写:

const numberArr = [1,2,3];

这时候你把鼠标放在numberArr上面可以看出,这个数组的类型就是 number 类型。这是 TypeScript 通过类型推断自己推断出来的。 如果你要显示的注解,也非常简单,可以写成下面的形式。

const numberArr: number[] = [1, 2, 3];

同样道理,如果你的数组各项是字符串,你就可以写成这样。

const stringArr: string[] = ["a", "b", "c"];

数组中对象类型的定义

如果你作过一些项目,你就会知道真实的项目中数组中一定会有对象的出现。那对于这类带有对象的数组定义就稍微麻烦点了。 比如现在我们要定义一个有很多小姐姐的数组,每一个小姐姐都是一个对象。这是的定义就编程了这样。

const xiaoJieJies: {
    
     name: string, age: Number }[] = [
    {
    
     name: "翠花", age: 18 },
    {
    
     name: "小兰", age: 28 },
  ];

这种形式看起来比较麻烦,而且如果有同样类型的数组,写代码也比较麻烦,TypeScript 为我们准备了一个概念,叫做类型别名(type alias)。

比如刚才的代码,就可以定义一个类型别名,定义别名的时候要以type关键字开始。现在定义一个Lady的别名。

type Lady = {
    
     name: string, age: Number };

有了这样的类型别名以后哦,就可以把上面的代码改为下面的形式了。

  const xiaoJieJies:Lady [] = [
    {
    
     name: "翠花", age: 18 },
    {
    
     name: "小兰", age: 28 },
  ];

这样定义是完全起作用的,比如我们下面在对象里再加入一个属性,这时候编译器就会直接给我们报错了。

这时候有的小伙伴就会问了,我用类进行定义可以吗?答案是可以的,比如我们定义一个Madam的类,然后用这个类来限制数组的类型也是可以的。

  class Madam {
    
    
    name: string;
    age: number;
  }
  
  const xiaoJieJies: Madam[] = [
    {
    
     name: "翠花", age: 18 },
    {
    
     name: "小兰", age: 28 },
  ];

可以看到结果,我们这么写也是完全可以的。

猜你喜欢

转载自blog.csdn.net/yang939207690/article/details/109110487
今日推荐