javascript - Ionic : Typescript-fel


Jag är ny på Ionic och jag stöter på detta problem när jag kör build-kommandot. $ ionic cordova build android

[00:34:40]  typescript: src/pages/becomevendor/becomevendor.ts, line: 97 
        Argument of type '(result: NativeGeocoderReverseResult) => void' is not assignable to parameter of type 
        '(value: NativeGeocoderReverseResult[]) => void | PromiseLike<void>'. Types of parameters 'result' and 
        'value' are incompatible. Type 'NativeGeocoderReverseResult[]' is not assignable to type 
        'NativeGeocoderReverseResult'. Property 'countryCode' is missing in type 'NativeGeocoderReverseResult[]'. 

  L96:  this.nativeGeocoder.reverseGeocode(this.becomeVendorDetails.latitude, this.becomeVendorDetails.longitude)
  L97:      .then((result: NativeGeocoderReverseResult) => {
  L98:          let addressLocal: any = JSON.stringify(result[0]);

        Argument of type '(result: NativeGeocoderReverseResult) => void' is not assignable to parameter of type 
[00:34:40]  typescript: src/pages/postjob/postjob.ts, line: 176 
        '(value: NativeGeocoderReverseResult[]) => void | PromiseLike<void>'. Types of parameters 'result' and 
        'value' are incompatible. Type 'NativeGeocoderReverseResult[]' is not assignable to type 
        'NativeGeocoderReverseResult'. 

 L175:  this.nativeGeocoder.reverseGeocode(this.bookingdetail.latitude, this.bookingdetail.longitude)
 L176:      .then((result: NativeGeocoderReverseResult) => {
 L177:          let addressLocal: any = JSON.stringify(result[0]);

        Argument of type '(result: NativeGeocoderReverseResult) => void' is not assignable to parameter of type 
        '(value: NativeGeocoderReverseResult[]) => void | PromiseLike<void>'. Types of parameters 'result' and 
[00:34:40]  typescript: src/pages/vendoreditprofile/vendoreditprofile.ts, line: 356 
        'value' are incompatible. Type 'NativeGeocoderReverseResult[]' is not assignable to type 
        'NativeGeocoderReverseResult'. 

 L355:  this.nativeGeocoder.reverseGeocode(this.profileDetail.latitude, this.profileDetail.longitude)
 L356:      .then((result: NativeGeocoderReverseResult) => {
 L357:          let addressLocal: any = JSON.stringify(result[0]);

I källkoden, becomevendor.ts

displayAddress() {
    this.nativeGeocoder.reverseGeocode(this.becomeVendorDetails.latitude, this.becomeVendorDetails.longitude)
        .then((result: NativeGeocoderReverseResult) => {
            let addressLocal: any = JSON.stringify(result[0]);
            let addressLoc = JSON.parse(addressLocal);
            let addressData = addressLoc.thoroughfare + ',' + addressLoc.locality + ',' + addressLoc.postalCode;
            this.becomeVendorForm.controls['address'].setValue(addressData);
            this.autocomplete.query = addressData;
        })
        .catch((error: any) => console.log(error));
}
close() {
    this.viewCtrl.dismiss();
}

Denna spara-funktion finns också tillgänglig i de andra två filerna.

Svar #1

Det verkar som om det är eftersom nativeGeocoder.reverseGeocode returnerar en lista över NativeGeocoderReverseResult

Ändra resultat från:

    .then((result: NativeGeocoderReverseResult) => {

till

    .then((result: NativeGeocoderReverseResult[]) => {