You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何在TypeScript中可将Class作为类型使用?如word: Word示例

TypeScript中类可作为类型使用的原因

在TypeScript里,类具备双重身份:它既是JavaScript层面的值(即构造函数,用于创建实例),同时也是TypeScript类型系统中的类型(用于约束变量的结构)。

具体拆解:

  • 作为值的类:就是你写的class Word { ... }本身,对应运行时的构造函数,能通过new Word("apple", "苹果")创建实例,这和普通JavaScript类的行为一致。
  • 作为类型的类:TypeScript会自动根据类的定义生成一个隐式的接口类型,这个类型描述了该类实例的结构(包括所有公开属性、方法)。比如你代码里的add(word: Word),这里的Word就是这个隐式类型,它要求传入的参数必须是Word类的实例,或者结构与Word实例匹配的对象(因为TypeScript采用结构类型系统)。

这种设计的好处是无需额外定义重复的接口,直接复用类的定义来做类型约束,让代码更简洁。比如如果不用类作为类型,你得单独写:

interface Word {
  term: string;
  def: string;
}

而用类的话,直接用Word就能同时兼顾构造实例和类型约束的需求。

补充:你代码里的Word类构造函数虽然接收了term和def,但没有赋值给实例属性(比如this.term = term),实际使用时word.term会报错,记得在构造函数里把参数绑定到实例上。

内容的提问来源于stack exchange,提问作者Gianna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 07:36:20