请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,类类型和实例类型怎么区分呢?typeof Greeter这块没搞懂

typeof Greeter,意思是取 Greeter 类的类型,而不是实例的类型,这句话没明白
试了一下typeof Greeter返回值是function
let greeterMaker: typeof Greeter = Greeter,那这句代码是不是就相当于let greeterMaker: function = Greeter?
后面又讲到typeof Greeter这个类型包含了类的所有静态成员和构造函数,为啥function包含了类的所有静态属性和构造函数呢?

正在回答

1回答

ustbhuangyi 2019-05-31 13:44:24

Greeter 是实例类型,typeof Greeter 就是类类型。
类是即可当做值,也可以当做类型的。
比如 let greeter:Greeter 这里的 Greeter 就被当做类型,同理
typeof Greeter 这里也是当做类型,而不要去对它求值,所以你对它求值是没有意义的。

这些都是 TypeScript 的规范,TypeScript 根据这些规范编译,你要跳出 JavaScript 运行时的逻辑,因为编译后运行的 JavaScript 的代码,也就没有这些类型了。



1 回复 有任何疑惑可以回复我~
  • 提问者 biubiuQAQ #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-05-31 14:35:16
  • 提问者 biubiuQAQ #2
    那就可以理解为typescript的一个规则就是typeof 类名就是获取到某个类的类类型吧
    回复 有任何疑惑可以回复我~ 2019-05-31 14:36:14
  • ustbhuangyi 回复 提问者 biubiuQAQ #3
    嗯,可以这么理解
    回复 有任何疑惑可以回复我~ 2019-05-31 17:50:05
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信