首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在不向解决方案添加项目的情况下引用其他项目中的类型记录文件?

是否可以在不向解决方案添加项目的情况下引用其他项目中的类型记录文件?
EN

Stack Overflow用户
提问于 2015-04-24 21:05:42
回答 2查看 3.3K关注 0票数 2

在大型软件中,将代码分解为项目是个好主意。例如,有一个框架项目,它包含一些名为Company.Framework的项目中的所有基类,还有一些项目使用了Company.ProductA、Company.ProductB等共享代码。

是否可以在其他项目中引用.ts文件,例如仅引用其dll,而不是添加项目,这样框架项目就可以对业务开发人员隐藏。

问题是如何在其他项目中引用.ts文件,而不将这些项目添加到解决方案中。例如,只需添加它们的dll即可。

EN

回答 2

Stack Overflow用户

发布于 2015-04-29 04:49:12

我相信您知道这一点,但是类型记录文件(.TS)被编译成Javascript文件(.JS)。类型记录文件和生成的Javascript文件都不会在DLL中结束。DLL只包含服务器端代码,而类型记录/Javascript是客户端代码。

因此,尝试从您的ProductA项目中添加引用到框架项目中的DLL并不会引入您的框架项目中的任何类型记录文件。

只要最终呈现的HTML页面包括来自ProjectA和框架的生成Javascript的标记,那么一切都会很好,即使这两个项目之间没有连接。如果您真正想要的是为框架类编写代码,而您正在ProjectA中编写类型记录,那么您应该按照@WedneyYuri和@DavidSherret的建议来做,这就是将框架项目中的.d.ts文件添加到您的ProjectA项目中。

票数 0
EN

Stack Overflow用户

发布于 2015-05-01 15:59:33

管理属地

最简单的解决方案是使用像鲍尔这样的包管理器

在终端上:创建一个空文件夹并启动一个空的bower存储库:

代码语言:javascript
运行
复制
$ bower init

对于每个定义文件,使用以下命令:

代码语言:javascript
运行
复制
$ bower install [URL] --save-dev

jQuery定义文件示例

代码语言:javascript
运行
复制
$ bower install https://raw.githubusercontent.com/borisyankov/DefinitelyTyped/master/jquery/jquery.d.ts --save-dev

多亏了保龄球,你可以在这里使用任何网址。要获得更多信息,请访问bower文档

编译

在运行命令definitions.d.ts的同一个文件夹中创建一个文件(名称不重要) $ bower init

对于每个已安装的定义文件,必须手动添加,在该文件中添加新行:

添加jQuery和angularjs后的示例

代码语言:javascript
运行
复制
/// <reference path="jquery.d/index.ts" />
/// <reference path="angular.d/index.ts" />

现在,在您的项目中,只需要包含对definitions.d.ts文件的引用。

运行代码

要使代码工作,您需要.js文件。在开发环境中,我使用bower管理独立文件夹中的依赖项,并在html中手动添加.js文件。在生产中,使用任何工具将它们连接起来。

TSD (TypeScript DefinitelyTyped定义管理器)

在不久的将来,包管理器将可以选择从任何地方安装模块。还没准备好,但这是个目标。

TSD未来的目标是从任何源无缝地支持任何TypeScript定义文件。默认情况下,您仍然应该能够搜索绝对类型的存储库并从那里安装。然而,将把更多的重点放在支持独立定义上,特别是那些与模块捆绑在一起的定义。https://github.com/DefinitelyTyped/tsd/issues/150

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29857469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档