2017-01-03 18 views
0

この関数をコンパイルエラーが発生しないようにする方法を理解できません。typescript - 'number'型の引数が 'string'型のパラメータに代入されない

関数は、数値が10未満

private msToTime(duration:any):string { 
    var milliseconds:string = String(parseInt((duration%1000)/100)) 
    var seconds:string = String(parseInt((duration/1000)%60)) 
    var minutes:string = String(parseInt((duration/(1000*60))%60)) 
    var hours:string = String(parseInt((duration/(1000*60*60))%24)) 

    hours = (parseInt(hours) < 10) ? "0" + hours : hours; 
    minutes = (parseInt(minutes) < 10) ? "0" + minutes : minutes; 
    seconds = (parseInt(seconds) < 10) ? "0" + seconds : seconds; 

    return hours + ":" + minutes + ":" + seconds; 
} 

答えて

2

次のコードを試してみて、コンパイラはエラーを返しません。

private msToTime(duration:any):string { 
    var milliseconds:string = String((duration%1000)/100) 
    var seconds:string = String((duration/1000)%60) 
    var minutes:string = String((duration/(1000*60))%60) 
    var hours:string = String((duration/(1000*60*60)%24) 

    hours = (parseInt(hours) < 10) ? "0" + hours : hours; 
    minutes = (parseInt(minutes) < 10) ? "0" + minutes : minutes; 
    seconds = (parseInt(seconds) < 10) ? "0" + seconds : seconds; 

    return hours + ":" + minutes + ":" + seconds; 
} 
0

ある場合は、そう、(duration%1000)/100はすでにintでparseInt((duration%1000)/100)を呼び出そう0とMSに時間を要し、かつプリペンド時間/分/秒このメソッドを削除して使用するだけです。

var milliseconds:string = String((duration%1000)/100) 
var seconds:string = String((duration/1000)%60) 
var minutes:string = String((duration/(1000*60))%60) 
var hours:string = String((duration/(1000*60*60))%24) 
0

parseInt()は文字列入力を受け取ります。ここにあなたの目的のために、種類のMath.floor()

-1

のparseInt関数の引数はとても文字列 で、あなたはこのように行うことができます使用します。 のvar(ミリ秒):文字列=文字列(のparseInt((デュレーション%1000)/ 100).toString() );

関連する問題