Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >是否可以在不向解决方案添加项目的情况下引用其他项目中的类型记录文件?

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

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

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

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

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

EN

回答 2

Stack Overflow用户

发布于 2015-04-28 20: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 07:59:33

管理属地

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ bower init

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ bower install [URL] --save-dev

jQuery定义文件示例

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

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

编译

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

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

添加jQuery和angularjs后的示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/// <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

复制
相关文章
记录C++遗忘项
extern那些事 extern "C" 是放在.cpp文件中,而不是放在.c中,不然会有编译错误。放在.c的情况都是加上了#ifdef __cplusplus#endif即用来识别当前文件用C++进行编译,所以才不会报错。 static那些事 静态成员变量未赋值的存放在bss段,赋值过就放在data段. 类的静态数据成员如成员函数或者成员变量,不依赖于类对象本身,即类中的静态数据成员由对象共享。因此静态变量不能使用构造函数初始化;静态函数仅能访问静态数据或静态成员函数。 静态类对象和静态对象(变量)一样,
Rock_Lee
2021/01/13
6150
详解基于Vue2.0项目的webpack配置文件
Vue提供了一个很好的命令行工具:vue-cli,用来快速构建Vue项目。 现在,我们改造一个由vue-cli创建的simple project,使其提供更强大的功能。
娜姐
2022/05/13
2.1K0
详解基于Vue2.0项目的webpack配置文件
Linux 内核中 Kconfig 文件的作用和添加 menuconfig 项的方法
嵌入式开发中,需要定制或添加一些内核的功能。这里就需要配置 Kconfig 文件了。本文简单说明一下如何修改。便于需要时查找
amc
2018/07/02
3.6K0
在uniapp H5项目中使用腾讯地图sdk
本人是用uniapp在做微信公众号的h5页面,其中需要把经纬度信息转化成文字描述的位置信息,在腾讯地图开发平台上申请了一个key,然后下载了一个微信小程序使用的微信小程序JavaScriptSDK v1.2但是这个sdk是为小程序设计的,所以在vue的h5中使用会有跨域问题,所以结合vue-jsonp对这个sdk做了一下修改,可以直接放入h5中使用。
腾讯位置服务
2021/06/25
2.9K0
在 Grub 菜单下添加Clover的启动项进入黑苹果
2、编辑grub的配置文件,以ubuntu举例,编辑 /etc/grub.d/40_custom文件,添加以下内容:
前Thoughtworks-杨焱
2021/12/07
2K0
BCDboot_bcdedit添加启动项
BCDboot 是一种用于快速设置系统分区(或修复系统分区)上的启动环境的工具。
全栈程序员站长
2022/11/01
1.2K0
zabbix添加snmp监控项_SNMP协议
2、从zabbix源码包中拷贝perl脚本到/usr/bin/目录下,并增加执行权限
全栈程序员站长
2022/09/24
6.7K0
zabbix添加snmp监控项_SNMP协议
vue表单必填项前面添加红色*
2.实现代码 (1)from表单定义 :rules="rules" ,:model="headerForm"
Twcat_tree
2022/12/05
2K0
vue表单必填项前面添加红色*
Vue3项目的创建和托管
前面我们在学习Vue的时候都是将Vue的代码直接写在html文件的script中,但实际工作中,我们会使用工具(比如vue-cli)创建完整的项目结构,同时将vue项目托管于nodeJS等JS运行时,实现前端服务的生产化部署。
Python研究所
2022/06/17
7510
Vue3项目的创建和托管
如何添加linux开机启动项
摘要:以往的服务通常使用supervisord或者crontab的方式来守护或者定时执行,最近遇到了自己写的服务所依赖到一些组件服务,在开机的没有自动启动的问题,所以这次对添加linux开机自启动的一些方式做一个总结。让自己的服务可以做到无人托管开机自启动,减少运营成本的同时可以防止有人偷偷写入开机启动项,启动一些没有必要的服务。
机智的程序员小熊
2019/04/21
18.1K0
如何添加linux开机启动项
在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性
在编写项目文件或者 MSBuild Target 文件的时候,我们经常会使用 <Foo Include="Identity" /> 来定义集合中的一项。在定义的同时,我们也会额外指定一些属性。
walterlv
2023/10/22
2760
在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性
Python判断列表中是否有某个项
这个算法比较巧妙:遍历列表,把列表中的每一项与匹配项进行比较,如果不相等就把下标为i的列表的值赋值给下标为k的列表,因为初始时k=i=0,意思就是取出当前项再赋值给当前项,假设有列表[1,2,3],匹配项val是2,则循环第一次后1的位置不变,当i=1,k=1时,也就是列表元素为2时,lt[i]!=val为false,进入下一次循环,此时k=1,i=2,lt[2]!=val (备注:lt[2]=2)满足条件,则执行lt[k]=lt[i],3会覆盖2的位置,列表就变成了[1,3,3],循环完毕,返回k值,再使用字符串截取lt[:k],截取从0位置开始,截取长度为k的闭区间长度的字符串,所以为1,3
程序员小新
2021/12/29
2.3K0
maven 解包依赖项中的文件
使用goal:unpack-dependencies 在配置参数includeArtifactIds中指定要解包的模块制件ID
路过君
2022/07/20
2.4K0
Vue2.7正式发布,终于可以在Vue2项目中使用Vue3的特性了,真香~
尽管现在 Vue3 是默认版本,但还有许多用户、相关库、周边生态使用的是 Vue2,且由于依赖兼容性、浏览器支持要求或没有足够的带宽升级,导致不得不继续使用 Vue2。难道 Vue3 发布了这么多“真香”的特性,我们 Vue2 的用户与项目就只能眼巴巴地看着?当然不是!有一个好消息是,前两天 Vue2.7 正式发布了。在此版本中,从 Vue3 向后移植了一些最重要的功能,以便 Vue2 用户也可以从中受益。
JEECG
2022/10/25
3.3K0
windows10添加开机启动项怎么设置_注册表添加开机启动项
在日常生活中,偶尔要求其中的软件在开机时便能自动启动,比如MySQL一般被设置为自启动项。今天将为大家介绍window10中如何添加开机启动项。
全栈程序员站长
2022/11/17
2K0
windows10添加开机启动项怎么设置_注册表添加开机启动项
Linux Ubuntu 修改Grub,添加删除启动项,初步辨析Grub文件。
由于我的电脑 装Ubuntu 的时候电脑里只有一个Windows 系统,所以Ubuntu就自动将我Windows的启动项添加进取。
风骨散人Chiam
2022/01/06
15.1K0
JS判断重复数组是否有重复项
大家好,今天我们来讲一下,如何使用javascript判断一个数组之中,是否有相同重复的元素。 在讲之前,先来讲一下思路: 在现实当中,当我们要判断某几个东西是否相同,那就意味着这东西至少是有2个或
web前端教室
2018/02/06
7.5K0
JS判断重复数组是否有重复项
解决python3项目中无法使用supervisor的问题
在我的Dockerfile中这样安装 # 安装项目所需的第三方 RUN python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt \ && python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple \ gunicorn \ && python3 -m pip install git+https
简单、
2018/07/17
1.2K0
vue2项目中如何使用es2020
ECMAScript 基于多种原始技术,最著名的是 JavaScript (Netscape) 和 JScript (Microsoft)。截止2022年,正式标准一共发布12次,es2020草案撰写中。
奋飛
2021/12/30
1K0
教程|监控项类型—SNMP客户端
您可能希望在打印机、网络交换机、路由器或UPS等设备上使用SNMP监控,这些设备通常启用SNMP,在这些设备上尝试设置完整的操作系统和Zabbix代理是不切实际的。
Zabbix
2022/12/12
5K0
教程|监控项类型—SNMP客户端

相似问题

在VB项目中引用解决方案项

11

是否可以在C# MVC3项目中添加对的引用?

12

在BAL中不向DAL添加项目引用的依赖项注入

23

是否可以将项目依赖项添加到不在解决方案中的项目中?

16

我是否可以从.NET 5项目中添加对.NET框架DLL的引用?

40
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文