打字稿中的多个构造函数
Posted
技术标签:
【中文标题】打字稿中的多个构造函数【英文标题】:Multiple constructors in typescript 【发布时间】:2022-01-23 18:32:49 【问题描述】:如何在 typescript 中定义多个构造函数?例如,我想有以下代码:
class Folder extends Asset
constructor(repositoryId: string, assetId: string)
super();
constructor (folder: Folder)
是否可以在 typescript 中以多种方式实例化一个类?
【问题讨论】:
这能回答你的问题吗? Constructor overload in TypeScript 您可以在“类型”级别有多个重载,但只允许单个实现。 (它需要能够处理string | Folder
作为第一个参数)typescriptlang.org/play?#code/…
【参考方案1】:
你是这样的:
class Folder extends Asset
constructor(repositoryId: string, assetId: string);
constructor(folder: Folder);
constructor(repositoryId?: string, assetId?: string, folder?: Folder)
if (!folder && repositoryId && assetId) super();
else
// To stuff
【讨论】:
以上是关于打字稿中的多个构造函数的主要内容,如果未能解决你的问题,请参考以下文章