在JavaScript中使用命名参数(基于TypeScript)

15 浏览
0 Comments

在JavaScript中使用命名参数(基于TypeScript)

在 TypeScript 中使用命名参数时遇到了问题。我知道以我在 TypeScript 中使用的方式,它不被支持。

但是我该怎么办呢?

TypeScript:

SomeFunction(name1: boolean, name2: boolean, name3: boolean, name4: boolean) // Will occur only one time, so the change should be in TypeScript

JavaScript:

$(function () {
     ...SomeFunction({name1:false, name2:false, name3:false, name4:true}); // Will occur 100 times
});

我看了一些(但都不起作用):

有没有一种方式可以在 JavaScript 函数调用中提供命名参数?

如何向 TypeScript 函数参数添加可选命名参数?

在 TypeScript 中,我该怎么做才能在 JavaScript 中使用命名参数?

我想知道的是,在我以 TypeScript 中使用的方式使用命名参数时,Visual Studio 2015 并没有显示语法错误......

PS:我使用 TypeScript 2.1

admin 更改状态以发布 2023年5月23日
0
0 Comments

获得类似“具名参数”的唯一方法是使用单个对象参数:

type SomeFunctionParams = {
    name1: boolean;
    name2: boolean;
    name3: boolean;
    name4: boolean;
}
SomeFunction(params: SomeFunctionParams) { ... }

然后:

$(function () {
    SomeFunction({
        name1:false,
        name2:false,
        name3:false,
        name4:true
    });
});

0
0 Comments

在JavaScript和TypeScript中不存在真正的命名参数,但是你可以使用解构来模拟命名参数:参考链接

interface Names {
    name1: boolean
    name2: boolean
    name3: boolean
    name4: boolean
}
function myFunction({name1, name2, name3, name4}: Names) {
    // name1, etc. are boolean
}

注意:类型Names是可选的。以下的JavaScript代码(不带类型)也是有效的TypeScript代码:

function myFunction({name1, name2, name3, name4}) {
    // name1, etc. are of type any
}

0