typescriptでコーディングするときに奇妙な問題が発生しました。何とか2> 100 == true(?)。Typescript:2> 100 == true
と私は本当にそれを把握するカントは...ここで
が私のコードです:
if (!this.multipleYAxis) {
for (let d of this.getDatasources()) {
let options = this.getGraphTypeOption(d.id);
console.log(this.yMax + ' < ' + options.max);
console.log(this.yMax < options.max);
if (this.yMax < options.max)
this.yMax = options.max;
if (this.yMin > options.min)
this.yMin = options.min;
}
if (this.getChart().yAxis[1] != undefined) {
this.getChart().yAxis[1].update({
max: this.yMax
});
this.getChart().yAxis[1].update({
min: this.yMin
});
}
}
yMinのとyMaxのは次のように宣言されています
private yMin: number = 0;
private yMax: number = 0;
オプションは、次のように宣言されています:
export interface GraphTypeOption {
...
max: number;
min: number;
...
}
現在テスト中のコードは2つのデータソースを実行しています。したがって、forループは2回実行されます。
これは私の出力である:クローム開発ツールのコンソールで、私がtrueに100 < 2を得ることができます
100 < 100
false
100 < 2
true
唯一の方法は、中に入力して、「100」<「2」が、あなたは私の中で見ることができるようにされます宣言this.yMax
とoptions.max
は明らかにint/numberの型です。コンパイラは、キャスト関数がstring型の変数を必要とするため、それらをintにキャストしたいと思っていても好きではありません。
誰でもこのトラブルの原因を知っていますか?それはそれを台無しにtypescript - > javascriptですか?あなたがしている、その後、true
として100 < 2
を見ている場合
私はあなたが文字列を比較していることを確認しています。 –
'console.log(this.yMax、 '<'、options.max);'これは、少なくとも1つが文字列であることを証明します –
コンパイル警告はありますか? 'typeof this.yMax'のロギングはどうですか? – MaxArt