我有问题,在TypeScript中使用命名参数时,我知道它不支持我在TS中使用它的方式。 但我怎么能
打字稿:
SomeFunction(name1: boolean, name2: boolean, name3: boolean, name4: boolean) //will occur only 1 time, so the change should be in typescript
JavaScript的:
$(function () {
...SomeFunction({name1:false, name2:false, name3:false, name4:true}); //will occur 100 times
});
我在看(这没有用):
Named parameters in javascript
How can I add optional named parameters to a TypeScript function parameter?
在TypeScript中我可以做什么,在JavaScript中使用命名参数?
我想知道的是,VS2015在使用命名参数时没有出现语法错误,就像我在TypeScript中使用它一样......
ps:我使用TS 2.1
答案 0 :(得分:8)
您可以使用命名参数:
interface Names {
name1: boolean
name2: boolean
name3: boolean
name4: boolean
}
function myFunction({name1, name2, name3, name4}: Names) {
// name1, etc. are boolean
}
注意:类型Names
实际上是可选的。以下JavaScript代码(无需键入)在TS中有效:
function myFunction({name1, name2, name3, name4}) {
// name1, etc. are of type any
}
精确度:实际上,此功能是用于simulate named parameters的解构。真正的命名参数不存在于JavaScript或TypeScript中。
答案 1 :(得分:4)
唯一能够接近“命名参数”的东西是使用单个对象参数:
var b64content = fs.readFileSync('/home/sivasaivarma/Day Users/sivasaivarma/personal/bigdata/images/leadoid.jpg', { encoding: 'base64' })
T.post('media/upload', { media_data: b64content }, function (err, data, response) {
var params = {
status: 'LEADoid filters media streams to find your target audience and then engage them within their own social post- https://leadoid.com/#!/home',
media_ids: [mediaIdStr]
}
T.post('statuses/update', params, function (err, data, response) {
console.log(data)
})
}
然后:
type SomeFunctionParams = {
name1: boolean;
name2: boolean;
name3: boolean;
name4: boolean;
}
SomeFunction(params: SomeFunctionParams) { ... }
答案 2 :(得分:-4)
简单的解决方案是使用有意义命名的局部变量:
var mungo: boolean=true, mary: boolean=true, and: boolean=true, midge: boolean=true;
zapOn(mungo, mary, and, midge);