簡體   English   中英

Typescript將解決方案拆分成幾個項目

[英]Typescript split solution into several projects

在凍結之前我使用了ScriptSharp。 由於TypeScript是一種正在開發的OOP語言,我決定嘗試它。 我使用visual studio(如果重要的話)。 我在ScriptSharp中制作簡單的事情我遇到了麻煩。 我沒想到會那么困難。 我想做的事:

  • 使用模塊AssemblyA創建項目A(類庫項目)。 AssemblyA模塊將具有一些導出的類。
  • 使用模塊AssemblyB創建項目B(類庫項目)。 AssemblyB將引用AssemblyA類型並將它們用作參數類型等。

你能給我一些如何使其工作或樣品的指南嗎? 謝謝。

更新:什么是我可以添加對另一個打字稿項目的引用? 如果將引用項目的輸出復制到該項目,那將是很好的。

您可以將模塊組織成類似命名空間的層次結構,而不是擁有程序集和模塊:

內部模塊

內部模塊示例:

module AssemblyA {
    export module ModuleA {
        export class Example {

        }
    }   

    export module ModuleB {
        export class Example {

        }
    }
}

var x = new AssemblyA.ModuleA.Example();
var y = new AssemblyA.ModuleB.Example();

您還可以跨多個文件定義這些內部模塊......

modulea.ts

module AssemblyA {
    export module ModuleA {
        export class Example {

        }
    }   
}

moduleb.ts

///<reference path="./modulea.ts" />
module AssemblyA {  
    export module ModuleB {
        export class Example {

        }
    }
}

app.ts

///<reference path="./modulea.ts" />
///<reference path="./moduleb.ts" />
var x = new AssemblyA.ModuleA.Example();
var y = new AssemblyA.ModuleB.Example();

外部模塊

如果您想編寫非常大的應用程序,可以使用外部模塊(文件代表模塊)。

assemblya / modulea.ts

    export class Example {

    }

assemblya / moduleb.ts

    export class Example {

    }

app.ts

import ModuleA = require('./assemblya/modulea');
import ModuleA = require('./assemblya/modulea');
var x = new ModuleA.Example();
var y = new ModuleB.Example();

我找到了解決問題的方法:

在項目AssemblyA中:

  1. 指定“將javascript輸出合並到文件中”到“.. \\ AssemblyB \\ AssemblyA.js”。
  2. 將生成聲明文件設置為true。

在項目AssemblyB中:

  1. 在app.ts中添加intellisense的參考///<reference path="../AssemblyA/AssemblyA.d.ts" />
  2. 在html中添加對生成文件的引用: <script src="AssemblyA.js"></script>

在項目B中,您可以使用任何名稱空間別名(例如:import AssemblyANS2 = AssemblyA.NS2;)或完全限定名稱。 將類放在不同的文件中,使用相同的模塊名稱,不需要引用ts文件。

我不喜歡的是引用項目沒有任何意義,但我希望在添加引用后自動完成步驟1-2-3-4。 當指定“將javascript輸出合並為一個文件”時,“將javascript輸出重定向到目錄”設置也不起作用。 我可以在第二個選項中指定文件路徑也很奇怪。 我希望這些設置與Path.Combine結合使用。 也許我的解決方案並不理想,但這正是我所需要的。 隨意提出更好的主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM