TypeScript-类型别名
  TEZNKK3IfmPf 2023年11月13日 24 0

 

  • 类型别名就是给一个类型起个​​新名字​​​, 但是它们都代表​​同一个类型​
  • 例如: 你的本名叫张三, 你的外号叫小三, 小三就是张三的别名, 张三和小三都表示同一个人

 

type MyString = string;
let value: MyString;
value = 'abc';
value = 123;
value = false;

如上代码的含义为给 string 类型起了一个别名叫做 ​​MyString​​​, 那么将来无论是 MyString 还是 string 都表示 ​​string​​​ 也就是说将来你使用 ​​MyString​​ 别名作为变量的类型那么改变量就只能存储字符串类型的数据像如上的示例代码我赋值了其它类型的数据其实在编译器当中已经报错了如下:

TypeScript-类型别名

 

  • 类型别名也可以使用​​泛型​

 

type MyType<T> = { x: T, y: T };
let value: MyType<number>;
value = {x: 123, y: 456};
value = {x: '123', y: 456};
value = {x: false, y: 456};

如上代码的含义为,定义了一个对象泛型别名,该对象当中有两个属性 x、y, 然后定义了一个该别名的变量,泛型类型指定的为 number 那么就不能在存储其它类型的值,如上代码有部分是报错的,如下:

TypeScript-类型别名

 

  • 可以在类型别名类型的属性中使用自己
  • 一般用于定义一些​​树状结构​​​ 或者​​嵌套结构​​ 的数据结构

 

type MyType = {
name: string,
children?: MyType
}
let value: MyType = {
name: 'one',
children: {
name: 'one',
children: {
name: 'one',
}
}
}

如上代码当中使用到了可选参数不然会一直循环的定义下去。

 

  • 接口和类型别名是相互兼容的

 

type MyType = {
name: string
}

interface MyInterface {
name: string
}

let value1: MyType = {name: 'BNTang'};
let value2: MyInterface = {name: 'zs'};
value1 = value2;
value2 = value1;
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月14日   37   0   0 typescript
  TEZNKK3IfmPf   2023年11月15日   17   0   0 泛型java
  TEZNKK3IfmPf   2023年11月14日   30   0   0 泛型list
  TEZNKK3IfmPf   2024年04月19日   36   0   0 typescript数组编译器
  TEZNKK3IfmPf   2024年04月19日   45   0   0 泛型java
  TEZNKK3IfmPf   2023年11月14日   29   0   0 typescript装饰器
  TEZNKK3IfmPf   2023年11月14日   82   0   0 Scala类型
TEZNKK3IfmPf