2016-04-18 1 views
1

ます。ただしTypescriptTypescriptのデータ型のデータの等価性を自動的にチェックする方法はありますか? <code>Python</code>で

type test = [string, string]; 

    var data1: test = ['a', 'b']; 
    var data2: test = ['a', 'b']; 

    console.log(data1 == data2); // return false 
    console.log(data1 === data2); // return false 

に同じタイプの2つのデータのための等価性チェックは、参照を使用しているこの

>>> a = ('a', 'b') 
>>> b = ('a', 'b') 
>>> a == b 
True 

ような何かを行うことができ、私は、配列を私ができるループを知っているがありますPythontupleに類似したデータの等価性をチェックする構文的な糖がありますか?

+0

いや、申し訳ありません。配列の各要素を比較する必要があります。私はこれが、TypeScriptがあなたのためにバックグラウンドで行うことだと思います。 http://stackoverflow.com/questions/3115982/how-to-check-if-two-arrays-are-equal-with-javascript –

+0

[JavaScriptのオブジェクト比較]の可能な複製(http://stackoverflow.com/質問/ 1068834/object-comparison-in-javascript) – Amid

+0

多くのものを自動化するTypescriptの複製ではありませんが、そういうものを追加しない限り、Javascriptの答えは – Rycochet

答えて

1

Typescriptのデータ型のデータの等価性を自動的にチェックする方法はありますか?

いいえ。状況はJavaScriptの場合と同じです。つまり、ライブラリやカスタムコードが必要です。

import _ = require("lodash"); 

type test = [string, string]; 

var data1: test = ['a', 'b']; 
var data2: test = ['a', 'b']; 

console.log(_.isEqual(data1, data2)); 

これは、同様にあなたが他の言語から来る期待するものに、あなたのための深い等価比較を行います。実際には

1

、これに対する正しい答えはLodashの_.isEqual functionを使用することがほとんど常にあります。

0

TypeScriptはこの機能を出荷時には提供していませんが、JavaScriptで発生する状況と完全に似ています。オブジェクトを再帰的にスキャンする必要があります(私はPythonが同様のことを行っていると思います)。

テスト目的のために迅速なその場しのぎの比較を達成するために、あなたはそれらの文字列を比較、JSON文字列に自分の価値観を変えることができます:

JSON.stringify(data1) == JSON.stringify(data2); // true