离子:打字稿错误

时间:2018-08-17 19:10:52

标签: javascript angularjs typescript cordova ionic-framework

我是Ionic的新手,我在运行build命令时遇到此问题。 $ ionic cordova构建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]);

在源代码中, 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();
}

此保存功能在其他2个文件中也可用。

1 个答案:

答案 0 :(得分:1)

这似乎是因为nativeGeocoder.reverseGeocode返回了NativeGeocoderReverseResult的列表

更改结果来自:

    .then((result: NativeGeocoderReverseResult) => {

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