原則として、これを行うことができます。他の回答と同様に、私はそれが大部分の時間のよいアイデアだとは思っていませんが、確かにそこにある可能性があると信じることができます。あなたは(あなたが提案として例えば両方がES6モジュールにコンパイルされている)は、2つの間の互換性のモジュールシステムを使用している、そしてあなたは、いくつかのClojureScriptを書くmy-cjs.js
にそれをコンパイルし、declare module "my-cjs";
を含むあなたの活字体にmy-cjs.d.ts
ファイルを追加することができますと仮定
TSでimport { export1, export2 } from "my-cjs"
という名前でインポートしてから使用してください。
このambient shorthand moduleセットアップを使用するのではなく、独自の型定義を構築して維持することをお勧めします(これは最も簡単ですが、any
すべてのClojureScriptを入力します)。私が知る限り、ClojureScriptから互換性のある型定義を自動的に生成する有用な方法はありませんので、手作業で最新の状態に保つ必要があります。スクリプト用のAPIが多く変更される可能性があります。
恐ろしい部分はおそらく2つの別々のコンパイルの出力を組み合わせて、両方がES6モジュールで正しくロードされるようになるでしょう。 TypeScript JSファイルを1つのフォルダに出力し、別のフォルダにClojureScript JSを出力し、それらのフォルダを結合してパスを整列させます(同じフォルダに直接コンパイルすることもできますが、物事をより単純に保つために始めて結合することから始めます)。それはあなたのコンパイルステップをどのように設定するかによって異なりますが、確かに実行可能です。
私のようなものをだファイル構造の両方をコンパイルすることを目指したい:
/cjs-output
|- /my-component
|- my-cjs-script.js
/ts-output
|- my-ts-code.js
|- some-more-ts-code.js
し、その後に第二段階として、これらを組み合わせること:私の知る限り
/output
|- /my-component
|- my-cjs-script.js
|- my-ts-code.js
|- some-more-ts-code.js
WebPACKのはClojureScriptローダーが利用できていないので、あなたは手でどちらの方法をそのコンパイル手順を行う必要があるでしょう。どのように正確にあなたがWebPACKのにこれをフックしたいことは未解決の問題である - 私は正常にWebPACKの外で働くJSステップにTS + CJSを取得することで起動し、多分後で統合する前に、以降のJSからプロセスを処理するためにWebPACKのを使用したいですしかし、YMMV。
そこからmy-component/my-cjs-script
を実行時にインポートすることができます。my-component/my-cjs-script
の型定義がある限り、それをうまくコンパイルする必要があります。
理論的には問題ではないが、個人的に、私は試したことがないと私は活字体を使用することはありませんので、彼らは、JSにコンパイルの両方。 cljsの開始ページには、jsファイルをWebページに直接含める方法に関する情報があります:http://clojurescript.org/guides/quick-start – Marcs
明確化が必要です - > " "2つのプロジェクトを1つのプロジェクトにまとめましたか? あなたはそれをちょうどタイプコピーでインポート可能か、セットアップ方法を教えてください クロージャススクリプト(プロジェクト構造を意味しますか?)を扱うためのタイプスクリプトベースのプロジェクト@Balazamon –