typescript - 使用命名空间来避免从每个文件中导入
问题描述
根据这篇文章,您可以使用 TypeScript 命名空间来导入类型/接口而不包括导入:
https://scotch.io/tutorials/3-useful-typescript-tips-for-angular
但是,如果我创建一个命名空间:
export namespace ST {
export interface Ifoo {
}
}
为了让它被识别,我必须像这样导入它:
import {ST} from 'suman-types/dts/foo';
export const foo : ST.Ifoo = function () {
};
有什么我做错了吗?如何使用命名空间轻松导入代码?
也许这仅适用于 Angular 而不适用于 CommonJS/Node.js?不知道为什么不。
解决方案
正如您所指的页面上所提到的,这实际上并不只绑定到 Angular。
我第一眼看到的是您export
与命名空间本身一起使用。
export namespace ST {
export interface Ifoo { }
}
scotch.io 上的示例说您应该仅将 export 与嵌套接口一起使用。像这样:
namespace ST {
export interface Ifoo { }
}
这应该可以解决问题。那么就不需要进一步了import
。您应该能够在整个应用程序中使用命名空间,而无需任何进一步的输入语句。
推荐阅读
- kubernetes - 如何在 Kubernetes 中查看更新部署是否成功完成?
- mongodb - 如何在 MongoDB 中按多个字段返回组结果?
- ionic-framework - Ionic V4 是否支持低于 7.0 的安卓版本?
- javascript - 如何使用 lodash 对对象进行分组并在列表上映射 -react
- macos - Mac 上 Minikube 中 ExternalName 的 DNS 解析
- amazon-web-services - 在 AWS DynamoDB 查询中,是否可以将字符串查询为数字?
- java - 是否可以使用基类(非单例类)继承单例类。如果是,这是一个好习惯吗?
- chatbot - 使用 Botium 进行语音机器人测试
- java - 使用 selenium C# 自动分页
- makefile - 不会触发重新编译的 Makefile 依赖项?