Bruke navngitte parametere i JavaScript (basert på TypeScript)
Jeg har problemer når jeg bruker navngitte parametere i TypeScript. Jeg vet at det ikke støttes på den måten jeg bruker det i TypeScript.
Men hvordan kan jeg gjøre det?
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
});
Jeg så på (dette fungerte ikke):
Finnes det en måte å gi navngitte parametere i et funksjonskall i JavaScript?
Hvordan kan jeg legge til valgfrie navngitte parametere til en TypeScript-funksjonsparameter?
Hva kan jeg gjøre i TypeScript for å bruke navngitte parametere i JavaScript?
Det jeg lurer på, er at Visual Studio 2015 ikke viste en syntaksfeil når jeg brukte navngitt parameter på den måten jeg brukte den i TypeScript...
PS.: Jeg bruker TypeScript 2.1
Svar #1
Ekte navngitte parametere eksisterer verken i JavaScript eller TypeScript, men du kan bruke destructuring for å simulere navngitte parametere:
interface Names {
name1: boolean
name2: boolean
name3: boolean
name4: boolean
}
function myFunction({name1, name2, name3, name4}: Names) {
// name1, etc. are boolean
}
Merk: Typen Names er faktisk valgfri. Følgende JavaScript-kode (uten typing) er gyldig i TS:
function myFunction({name1, name2, name3, name4}) {
// name1, etc. are of type any
}
Svar #2
Den eneste måten å få noe som ligner på "navngitte parametere" er å bruke en enkelt objektparameter:
type SomeFunctionParams = {
name1: boolean;
name2: boolean;
name3: boolean;
name4: boolean;
}
SomeFunction(params: SomeFunctionParams) { ... }
Og så:
$(function () {
SomeFunction({
name1:false,
name2:false,
name3:false,
name4:true
});
});
