我有问题,当在TypeScript中使用命名参数时,我知道它不支持我在TS中使用它的方式.但我怎么能
打字稿:
SomeFunction(name1: boolean, name2: boolean, name3: boolean, name4: boolean) //will occur only 1 time, so the change should be in typescript
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
$(function () {
...SomeFunction({name1:false, name2:false, name3:false, name4:true}); //will occur 100 times
});
Run Code Online (Sandbox Code Playgroud)
我在看(这没有用):
我可以在TypeScript中做什么,在JavaScript中使用命名参数?
我想知道的是,当我在TypeScript中使用它时,VS2015在使用命名参数时没有显示语法错误...
ps.:我使用TS 2.1
我正在使用node.js v4.3.1
我想在调用函数时使用命名参数,因为它们更具可读性.
在python中,我可以用这种方式调用函数;
info(spacing=15, width=46)
Run Code Online (Sandbox Code Playgroud)
我如何在node.js中做同样的事情?
我的javascript函数看起来像这样;
function info(spacing, width)
{
//implementation
{
Run Code Online (Sandbox Code Playgroud) 选项1:没有赋值的多个var
function MyFunction() {
var a = null;
var b = null;
....
var z = null;
a = SomeValue;
b = SomeValue2;
....
}
Run Code Online (Sandbox Code Playgroud)
选项2:一个var语句,没有赋值
function MyFunction() {
var a, b ..., z;
a = SomeValue;
b = SomeValue2;
....
}
Run Code Online (Sandbox Code Playgroud)
选项3:带赋值的多个var语句
function MyFunction() {
var a = SomeValue;
var b = SomeValue2;
....
var z = SomeValue26;
}
Run Code Online (Sandbox Code Playgroud)
使用特定选项有任何性能优势吗?原始类型赋值AND对象引用赋值是否属实?
感谢您的输入.
我想知道是否可以通过例如指定其名称来将值传递给特定参数,而不考虑该参数是第一个,第二个还是第100个.
例如,在Python中,您可以轻松地执行以下操作:
def myFunction(x, y):
pass
myFunction(y=3);
Run Code Online (Sandbox Code Playgroud)
我真的需要将一个值传递给一个特定的参数,我不知道它在参数枚举中的位置.我已经搜索了一段时间,但似乎没有任何效果.
最后一个参数具有默认值是很实用的,如下所示。
function add(x, y = 5) {
return x + y;
}
console.log(add(3)); // results in '8'
Run Code Online (Sandbox Code Playgroud)
但是,除了最后一个参数之外,是否可以使用默认值?如果是这样,您将如何调用它以使用第一个默认值,但提供第二个参数?
function add(x = 5, y) {
return x + y;
}
console.log(add(,3)); // doesn't work
Run Code Online (Sandbox Code Playgroud) 一位同事建议我添加"use strict";到我的 JS 代码的顶部,以突出我的定义中的任何差距和潜在的引用错误等。我对此非常满意,因为它已经确定了几段可能存在问题的代码.
但是,另一位同事告诉我,在调用带有多个参数的函数时,按照指定的方式命名参数会很有帮助,尤其是当它是一堆布尔值时。为了说明,这里有几个函数调用:
logData(data, target, preserveLog=true, changeClass=false, wrapLine=false);
Run Code Online (Sandbox Code Playgroud)
...比:
logData(data, target, true, false, false);
Run Code Online (Sandbox Code Playgroud)
但是"use strict";讨厌这个。在我执行此操作的任何地方,我都会在控制台中收到参考错误。正如预期的那样,它仍然运行良好,但控制台现在被所有这些明显未定义的引用弄得乱七八糟。
有谁知道是否有办法解决这个问题,以便我可以保留我的同事欣赏的编码约定,或者我将不得不停止使用"use strict";或检查我的所有代码并删除参数名称?
谢谢。
假设我有一个函数(可能来自第三方库,假设我无法更改其定义),以及一个具有与函数参数匹配或重叠的属性的对象:
function fn(foo, bar, baz) { /* do stuff */ }
var obj = { foo: "yes", bar: 7, baz: false }
Run Code Online (Sandbox Code Playgroud)
有没有办法使用某种解构或扩展赋值或其他一些 ES6 功能来将对象属性应用为函数参数,或者我是否坚持单独指定每个参数?
fn(...obj); // Doesn't work
fn(obj.foo, obj.bar, obj.baz); // Convoluted but works
fn.apply(null, obj.values()); // Might work if you're lucky
Run Code Online (Sandbox Code Playgroud) javascript ×7
ecmascript-6 ×1
function ×1
node.js ×1
parameters ×1
performance ×1
typescript ×1
use-strict ×1