typescript - 如何在打字稿中禁用隐式导入
问题描述
首先,“隐式导入”不是官方术语。
这就是我所说的“隐式导入”。
我有 2 个 ts 文件:
文件 1:app.ts
import * as angular from 'angular'; // (*)
import component from './component';
文件2:组件.ts
const component : angular.IComponentOptions = {
templateUrl: 'component.template.html'
};
export default component;
在这里,在 component.ts 中,即使angular
没有导入,打字稿编译器也不会显示任何错误。如果我删除(*)
app.ts 文件中的行,那么 typescript 编译器会抱怨没有 angular 命名空间,所以我认为 app.ts 中导入的模块也会在 app.ts 导入 component.ts 时隐式导入到 component.ts 中。这就是为什么我将此行为称为“隐式导入”。(如果存在,请告诉我此行为的官方术语)
如何禁用此行为?我想让每个 ts 文件尽可能完整。
解决方案
首先,“隐式导入”不是官方术语。
您要查找的术语是global module
. angular
无论您使用哪种类型定义都定义了一个全局 angular
变量,因此您可以在不导入它的情况下使用这个全局变量。
如果一个类型定义定义了一个全局......并且您使用该类型定义(我假设您必须这样做)......您将获得一个全局。抱歉,没有两种方法。
推荐阅读
- apache-camel - Apache骆驼如何为窃听器实现可选的消费者
- c++ - 如何避免 SetPixel() 但仍然能够为每个像素指定颜色?
- ios - 如何在sqlite查询中从NSString中删除'
- ios - 如何通过迦太基使用适用于 iOS 的谷歌移动视觉
- java - 使用 Criteria Builder 按嵌入属性排序
- mongoose - 如何在猫鼬跳过和限制之前排序?
- asp.net - 在 Visual Studio 2017 中设置 Angular 4
- node.js - 如何使用 mongoose 查询和 async-await/Promise 从 mongo 文档访问/返回值?
- fastlane - 有没有办法使用 fastlane 将构建异步上传到 testflight?
- sqlplus - sql加内连接with where子句(多条件)