如何在打字稿中使用可选参数调用类构造函数[重复]

Posted

技术标签:

【中文标题】如何在打字稿中使用可选参数调用类构造函数[重复]【英文标题】:How to call the class constructor with optional parameters in typescript [duplicate] 【发布时间】:2021-06-19 04:25:24 【问题描述】:
export default class Area 
    param1: String;
    param2: String;
    param3: String;

    constructor(
      param1: String,
      param2: String,
      param3: String 
        this.param1 = param1;
        this.param2 = param2;
        this.param3 = param3;        
    
    
const area1 = new Area("test1");    

我可以在没有 param2、param3 的情况下调用构造函数。 我将只调用没有参数 2 的构造函数。

// param1="test1"
const area2 = new Area("test1", ,"test3");

对吗?

【问题讨论】:

解释器会告诉你这是否正确。 (不是。) 【参考方案1】:

调用函数时只能省略最右边的参数。这意味着如果你想省略第二个参数,你也必须省略第三个参数。

但是,调用函数时省略的参数只不过是解释器用来初始化函数内部参数的undefined

你可以对你不想传递的参数做同样的事情:

const area2 = new Area("test1", undefined, "test3");

【讨论】:

【参考方案2】:

这已经在enter link description hereenter link description here

但总结起来,你应该写undefined,而不是两个逗号之间的空白处。

另外,如果你想声明一个参数是可选的,你应该使用 ?.

像这样:param2?: String,

【讨论】:

以上是关于如何在打字稿中使用可选参数调用类构造函数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在打字稿中使用 singleton() 在构造函数中传递值?

如何覆盖打字稿中的属性?

如何在打字稿中避免这种符号“| undefined”?

打字稿中的多个构造函数

在打字稿中推断抽象类的参数

使用 lodash 在打字稿中使用默认参数进行柯里化