2015-12-14 113 views
2

我刚刚在atom中使用atom-typescript配置了一个新的Angular/Typescript项目。该项目设置为具有导入所有模块的主角模块文件,其中包括类型定义文件。一切都在编译,运行没有问题。atom-typescript找不到类型

因为我在使用gulp,所以我配置了atom-typescript在保存时不编译.ts文件。现在,我看到所有.ts文件中的错误都显示原子类型脚本无法找到类型。

例:Module 'ng' has no exported member 'IScope' at line 1 col 32

我知道,我也许可以通过增加一个参考路径,以我的每一个TS文件像/// <reference path="../../.tmp/typings/tsd.d.ts" />解决这个问题,但似乎真是多余的和不必要的。

由于这些错误是由atom-typescript引发的,有没有什么办法可以在整个项目的设置中的某处设置我的类型定义文件的位置?任何其他建议如何处理?

+1

官方细节将类型与其他'ts'文件一起放入'tsconfig.json'文件中。既然你正在使用原子打字稿,你甚至可以使用全局模式 –

+0

真棒,这指出我在朝着原子打字稿文件glob的正确方向(https://github.com/TypeStrong/atom-typescript/blob/master/文档/ tsconfig.md#filesglob)。我所要做的就是为类型添加一个glob,为其他.ts文件添加一个,以获得更好的效果。 @BrunoGrieder如果你发布了这个信息的答案,我会将其添加为接受的回复。 –

+0

很高兴帮助。发布为答案:) –

回答

5

将类型与files条目中的其他ts文件一起放入tsconfig.json文件中。

由于使用原子打字稿,甚至可以使用glob patterns,即

{ 
... 
    "filesGlob": [ 
     "./typescript/**/*.ts", 
     "./typescript/**/*.tsx", 
     "./typings/**/*.d.ts" 
    ] 
... 
} 

files项将被自动更新。

编辑

由于这是现在正式通过打字稿,更便携的解决方案(跨的IDE)支持的可能是使用的tsconfigexclude财产。

这工作轮以外的其他方式:编译一切什么被排除(一般node_modules下任何东西,在静态资产,说:public

{ 
    "compilerOptions": { 
     ... 
    }, 
    "exclude": [ 
     "node_modules", 
     "public" 
    ] 
} 

在这个link

+1

这是我见过的最疯狂的事情。你真棒Bruno。 – sean