通过打字稿功能中的条件传递参数

问题描述 投票:0回答:2

我具有以下功能。如果a === "add"不等于““ add”`,我想在a上在p3上设置一些值,只需使用函数中的默认值即可。我该怎么办?

function func(p1: string, p2: string, p3: string = 'value'): void{
  console.log(p1);
  console.log(p2);
  console.log(p3);
};

let a = 'add';
func('a', 'b') #output: a, b, x
let a = 'mins';
func('a', 'b') #output: a, b, value
#something like
func('a', 'b', (a === "add")? "x") #output: a, b, value
typescript typescript2.0
2个回答
0
投票

根据文档,您可以将undefined传递给该函数,并且将使用默认的指定值:

在TypeScript中,我们还可以设置一个值,如果用户不提供参数,或者用户在其位置传递了undefined,则将为参数分配一个值。这些称为默认初始化参数。让我们以前面的示例为例,并将姓氏默认为“ Smith”。

function buildName(firstName: string, lastName = "Smith") {
    return firstName + " " + lastName;
}

let result1 = buildName("Bob");                  // works correctly now, returns "Bob Smith"
let result2 = buildName("Bob", undefined);       // still works, also returns "Bob Smith"

您的示例应如下所示:

func('a', 'b', (a === "add")? "x" : undefined)

更多here


0
投票

您可以这样操作。

func('a', 'b', ((a === "add") ? "x" : undefined));

但是我更喜欢这个。

if (a === 'add') func('a', 'b', 'x');
else func('a', 'b')
© www.soinside.com 2019 - 2024. All rights reserved.