#独家
什么情况下使用class名,什么情况下使用typeof class名?

2023-07-04 0 4,062

请问我们在使用类型注释的时候,何时使用type class名,何时使用class名呢?

我经过如下实验:

class Person {
  name: string | undefined;
  getName = () => {
    return this.name 
  }
}

const persons: Person[]  = [
  new Person(),
  new Person(),
  new Person(),
] 


const persons2: typeof Person[]  = [
  Person,
  Person,
  Person
] 

比如以上,是否是返回类型为class名称的时候,使用 typeof class名,返回类对象的时候,使用class名

在使用类型注释时,可以使用 typeof 关键字来表示类本身的类型,也可以直接使用类名来表示类的实例类型。

如果你想要表示一个类本身的类型,可以使用 typeof 关键字。例如,在你的示例代码中,const persons2: typeof Person[] 表示 persons2 变量的类型是一个类本身的数组类型。在这种情况下,typeof 关键字用于获取类本身的类型,而不是类的实例类型。

如果你想要表示一个类的实例类型,可以直接使用类名。例如,在你的示例代码中,const persons: Person[] 表示 persons 变量的类型是 Person 类的实例数组类型。在这种情况下,类名用于表示类的实例类型,而不是类本身的类型。

需要注意的是,typeof 关键字在 TypeScript 中还可以用于获取其他类型的类型,例如函数类型、基本类型等。而对于类来说,typeof 关键字主要用于获取类本身的类型,而不是类的实例类型。如果你想要表示一个类的实例类型,应该直接使用类名。

/* eslint-disable */
class Foo {
  public static bar: number
  public baz: string
}

type InstanceSide = Foo
type StaticSide = typeof Foo

const instance: InstanceSide = new Foo()
const classSelf: StaticSide = Foo
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. JK下载官网所有资源来源于开发团队,加入会员即可下载使用!如有问题请联系右下角在线客服!
2. JK下载官方保障所有软件都通过人工亲测,为每位会员用户提供安全可靠的应用软件、游戏资源下载及程序开发服务。
3. JK开发团队针对会员诉求,历经多年拥有现今开发成果, 每款应用程序上线前都经过人工测试无误后提供安装使用,只为会员提供安全原创的应用。
4. PC/移动端应用下载后如遇安装使用问题请联系右下角在线客服或提交工单,一对一指导解决疑难。

JK软件下载官网 技术分享 什么情况下使用class名,什么情况下使用typeof class名? https://www.jkxiazai.com/1912.html

JK软件应用商店是经过官方安全认证,保障正版软件平台

相关资源

官方客服团队

为您解决烦忧 - 24小时在线 专业服务