2017-04-06 638 views
0

假設我有以下文件夾中的TS文件文件夾1 folder1-> apptest.ts在這個文件中我寫的進口 *爲柴從「柴」 如果柴.js文件是不是在同一個文件夾指的folder1它拋出錯誤模塊無法找到 如果我複製到chai.js的folder1再錯誤了 我們可以導入文件,該文件是在另一個文件夾,而無需使用任何transpiler導入TS文件使用ES6語法另一個TS文件,而無需transpiler

+0

您是否安裝'chai'?嘗試使用'npm install chai'進行安裝,typecript將找出'node_modules'文件夾中的模塊。 – Saravana

+0

我不是遵循node_modules結構inthis,我將chai與msbuild集成在一起。但這裏的要點與chai無關,我說任何ts文件或js文件都假設sample.js在apptest.ts中使用 – Nanda

+0

讓我描述你我在文件資源管理器中的文件夾結構** - src-> client.sln-> something.csproj-> app.ts 和我的測試項目像** - src-client.sln-> test.csproj- > apptest.ts 我app.ts有一個方法Showname(名稱:字符串),我想用它 所以在這種情況下,我導入app.ts apptest.ts像導入*作爲名稱從「應用程序」 但在這種情況下,我得到錯誤無法找到模塊應用程序 ,我已經導出應用程序作爲模塊。 如果我將app.ts的app.js文件複製到apptest.ts文件夾,那麼錯誤得到解決。 – Nanda

回答

0

您可以使用apptest.ts中的確切路徑:

import Showname from '/src/client.sln/something.csproj/app'; 

但是你必須記住打字稿將被編譯成JS。所以編譯的文件「app.js」必須與ts文件(/src/client.sln/something.csproj/在同一個文件夾中)。如果使用outDir編譯選項,則可以使用相對路徑,如import x from '../../something.csproj'

但這樣做的比較正確的做法:就是用app.ts作爲一個模塊(見npm linknpm publish文檔)

+0

有沒有辦法通過打字來實現它? – Nanda

+0

不,因爲當生成JS時,將不會有類型(運行時)。 –

+0

我的錯誤是在編譯時,所以我認爲tsc默認情況下在Typings文件夾中搜索聲明文件。 – Nanda