2017-09-06 15 views
1

型に代入ではありません、私は他の回答を参照していますが、私の問題活字エラー:タイプが「{}」「番号」

console.log(`home.ts : ${result} : ${typeof result},${typeof this.points}`); 

戻り

home.ts : 50 : number,number 

が、このライン

を解決することができませんでした
this.points = result; 

は、次のエラーをスローします。

Typescript Error: Type '{}' is not assignable to type 'number'.

フル機能

getdefaultscore(){ 
    this.authService.getdefaultscore().then(
    (result)=>{ 
     console.log(`home.ts : ${result} : ${typeof result},${typeof this.points}`); 
     this.points = result; 
    }, 
    (err)=>{ 
     this.authService.alertnointernetconnection(); 
    } 
) 
} 

this.points数として定義されます。

getdefaultscoreの定義()

getdefaultscore(){ 
    return new Promise((resolve, reject)=>{ 
     let headers = new Headers(); 
     headers.append('Content-Type','application/json'); 
     this.http.post('mysite.com/ionuserpoint.php',JSON.stringify({defaultpoints:true}),headers) 
     .subscribe(
      (res) =>{ 
       let data = res.json(); 
       data = parseFloat(data); 
       alert(`defaults points : ${data}`); 
       resolve(data); 
      }, 
      (err) =>{ 
       reject(err); 
      } 
     ); 
    }); 
    } 

stackoverflowのは、いくつかのエラーがスローされますので、私はmysite.com前http://wwwを削除します。

+2

'getdefaultscore()'の定義は何ですか? –

+0

this.pointsはどのように宣言しますか? 'points:number'? – Fetrarij

+0

あなたはポイントを使用していますか?またはポイント=番号 – amyogiji

答えて

1

問題はgetdefaultscoreにあり、Promise<{}>を返すのが理想です。Promise<number>を返すように変更するのが理想です。 getdefaultscoreのコードを提供していないので、あなたがそこで行うべき変更を言うのは難しいです。発信者側の問題を解決するために、手動で結果を入力することができます。

async function x2() { 
    try { 
    points = <number>await getdefaultscore() 
    } catch (ex) { 

    } 
} 

編集:あなた

declare function getdefaultscore(): Promise<{}>; // Dummy declaration 
var points : number; 
function x() { 
    getdefaultscore().then((result: number)=>{ 
    points = result; 
    }, 
    (err)=>{ 
    }) 
} 

あなたは活字体で考えることができます別のバージョンが/あなたのPromiseコードを簡素化するために待って非同期を使用しています元の回答の後にgetdefaultscoreを追加しました。 promisを手動で作成するので、入力する必要があるのはPromise<number>です。

+0

私はparseFloatは(解決)を試みたが、それはthrowedだ@Aleksey L –

+0

答えを編集しただけで、番号 –

+0

への約束を入力する必要があります。返されたjsonが単なる数字であると仮定していますが、データがより複雑なオブジェクトであれば別の問題です。 'pareseFloat'は、方法 –