2015-02-10 26 views
0

我使用Visual Studio 2013與打字稿1.3(升級之前,打字稿1.0.0.0試過)引用一個打字稿文件會導致該文件中的智能感知錯誤

我有它使用打字稿的MVC的Web應用程序項目文件。所有這些.ts文件都能夠隱式引用而不需要任何///<reference>語句。項目中沒有_references.ts文件。

我現在已經開始着手爲這個.ts文件編寫單元測試。我在測試的同一個解決方案中有一個單獨的項目。我已將茉莉花和茉莉花.d.ts文件添加到項目中。

當我創建一個Typescript測試類時,它無法從Web應用程序中隱式引用.ts類。我可以通過在測試課程中引入///<reference>聲明來解決這個問題。然而,在這樣做的時候,我剛剛引用的來自Web應用程序項目的類突然全部通過它獲取Intellisense錯誤,因爲現在無法隱式引用它的任何依賴項。

我現在是否需要開始在我的web應用程序項目中顯式引用整個Typescript中的依賴項?有沒有更簡單的解決方案?

+0

首先,我想嘗試升級工具打字稿1.3或1.4 ...也許這是一個已經解決了問題。 – Benjamin 2015-02-10 14:06:51

+0

我遇到了同樣的問題。我認爲避免這個問題的最簡單方法是不要在單獨的項目中進行測試。似乎隱式引用僅在項目中。我認爲有一箇中途解決方案,測試項目將應用程序項目作爲參考。然後,類型工作,但intellisens沒有.. – Gustav 2015-02-10 14:55:44

+0

@Benjamin - 已升級到Typescript 1.3,它沒有區別。沒有語句,單元測試類不能引用實現類。在語句中,實現類不能引用其依賴關係。 – 2015-02-10 15:24:19

回答

0

一個選項可能是使用Chutzpah而不是Resharper亞軍。

可以在根測試文件夾目錄中使用chutzpah.json文件配置Chutzpah以自動包含引用。下面是一個例子,包括從文件夾中的所有.ts文件名爲類:

{ 
    "Framework": "jasmine", 
    "References": [ 
     { "Path": "../classes", "Include": "*.ts", "Exclude": "*Resource*" } 
    ] 
} 

有了這個配置從該文件夾中的所有編譯.ts文件將包括之前運行測試,這將防止運行時錯誤。

https://chutzpah.codeplex.com/wikipage?title=Using%20the%20references%20setting&referringTitle=Chutzpah.json%20Settings%20File

+0

Visual Studio智能感知是否會接受此配置,並停止抱怨? – 2015-02-10 16:16:03

+0

如果我不在打字稿中使用任何明確的引用語句,而只是在chutzpah配置中,我不會在構建或運行時發生任何錯誤。測試即使在深度依賴的情況下也能無縫運行。 – 2015-02-10 16:23:04

+0

僅供參考我用Typescript 1.4和最新的Chutzpah使用VS 2013 Update 4。 – 2015-02-10 16:31:07

相關問題