是否可以在两个TypeScript项目之间进行引用?假设我们具有以下项目结构:
Module1.ts
包含:
module TestModule {
export interface Interface1 {
}
}
Module2.ts
包含:
module TestModule {
export interface Interface2 extends Interface1 {
}
}
Test1
在中被引用Test2
。我得到一个错误Could not find symbol 'Interface1'
在Module2.ts
。它可以在一个项目中工作,但是我不知道如何从另一个项目中使它可见……也许现在还不可能。
[编辑1。]
当我尝试使用TestModule.Interface1
模式时,出现相同的错误(用不同的方式表示)。但是,IntelliSense看到了我的Interface1
:
[编辑2。]
我注意到我不能使用其他项目中的文件。即使我/// <reference ...
添加了正确的参考()并链接了我的第一个项目中的所有文件。
有很多方法可以做到这一点。
选项1-项目参考(TypeScript 3.0+)
如果您使用的是TypeScript 3.0,请查看使用项目引用。在这里阅读更多。
选项2-构建脚本
使用诸如gulp-typescript,grunt-ts之类的东西,或仅使用批处理脚本将文件复制到主项目的文件夹中。
或者,在Visual Studio中运行一个生成事件,该事件会将文件复制到主项目中。
选项3-npm软件包
如果使用npm,则可以为其他项目创建一个包。然后,您可以在主项目中使用您的包。指定本地依赖关系是执行此操作或通过使用诸如sinopia(这是一个专用存储库服务器)之类的好方法。我从未使用过它,但是看起来它会很好用。
选项4-NuGet软件包
您可以研究创建nuget软件包,然后在本地安装它。
选项5---declaration --outDir
编译器选项
您可以将--outDir
编译器选项或目录中的outDir
属性设置为tsconfig.json
其他项目,然后再对其进行编译,--declaration
以便它也生成声明文件(.d.ts
)。例如:--declaration --outDir ../Test1/External
。
原始答案(使用--out
)
如果右键单击库项目,然后单击属性,则可以在Visual Studio中执行类似的操作。在TypeScript Build
选项卡中,选中的选项,Combine JavaScript output into file
然后在主项目中指定要执行的位置(例如$(SolutionDir)/TypedApp/External/TypedLibrary.js
)。然后还要检查Generate declaration files
以生成.d.ts
文件。
一旦做到这一点,建立自己的图书馆项目,然后包括.js
,并.d.ts
在您的主项目。将.js
文件包含在html中,并.d.ts
在打字稿文件中引用。
每次重建库项目时,它将自动使用更改来更新主项目。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句