2016-11-10 7 views
2

タイプクラスインスタンスShowに関係なく、デバッグの目的でPureScriptの任意のレコードを強制表示(つまり文字列表現を作成)することは可能ですか?PureScriptでレコードを表示する

私はPux Eventオブジェクトの内容を表示したいと思いますが、それはショーのインスタンスを持っていない:

No type class instance was found for 

    Data.Show.Show { target :: { value :: String 
           , checked :: Boolean 
           } 
        , currentTarget :: { value :: String 
             , checked :: Boolean 
             } 
        , altKey :: Boolean 
        , button :: Number 
        , buttons :: Number 
        , clientX :: Number 
        , clientY :: Number 
        , ctrlKey :: Boolean 
        , metaKey :: Boolean 
        , pageX :: Number 
        , pageY :: Number 
        , screenX :: Number 
        , screenY :: Number 
        , shiftKey :: Boolean 
        } 

答えて

5

purescript-debugを使用できます。

+0

ありがとうございましたPhilはレコード '{a:1} 'を印刷するための最短方法です:' traceAny {a:1} id'? –

3

あなたはnewtype内のレコードをラップし、そのためのインスタンスを導出するData.Genericを使用することができます。

import Data.Generic 

newtype MyRecord = MyRecord 
        { target :: { value :: String 
           , checked :: Boolean 
           } 
        , currentTarget :: { value :: String 
             , checked :: Boolean 
             } 
        , altKey :: Boolean 
        , button :: Number 
        , buttons :: Number 
        , clientX :: Number 
        , clientY :: Number 
        , ctrlKey :: Boolean 
        , metaKey :: Boolean 
        , pageX :: Number 
        , pageY :: Number 
        , screenX :: Number 
        , screenY :: Number 
        , shiftKey :: Boolean 
        } 


derive instance genericMyRecord :: Generic MyRecord 

instance showMyRecord :: Show MyRecord where 
    show = gShow 

今、あなたはレコードでMyRecordまたはshow <<< MyRecordshowを使用することができます。

関連する問題