{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE TypeFamilyDependencies #-} module Live2 where import Data.Aeson as A import Data.Aeson.TypeScript.TH import Data.Function import Data.Proxy data TestT a = TestT { listOfA :: [a] , maybeA :: Maybe a } $(deriveTypeScript A.defaultOptions ''TestT) main :: IO () main = getTypeScriptDeclarations (Proxy :: Proxy (TestT Int)) & formatTSDeclarations & putStrLn