import - TypeScript import * 不创建别名

标签 import typescript

在 TypeScript 中,如何在不创建任何别名的情况下从文件“导入 *”?

例如我有一个包含顶级导出函数的文件“utils”,我想导入所有这些函数而不为每个函数重新创建别名。

像这样:

import * from "utils";

这可能吗?

最佳答案

您不能自动生成名称,您必须为其指定一个文件本地名称。这是为每个文件提供自己的命名上下文而设计的。

// import the default export (something exported with "export default")
import Stuff from "./Stuff";

// import specific things only; aliases in this style are optional
import { ItemA as AliasA, ItemB as AliasB } from "./Stuff";
import { ItemA, ItemB } from "./Stuff";

// import everything at once, grouped under a common name
import * as Stuff from "./Stuff";

I ... want to import all them without recreating the aliases for each function.

听起来您想要上面的第三个选项。

but with this syntax creates an alias

我认为这个想法是,如果您可以导入所有内容,同时采用定义的名称,那么您就会遇到命名冲突。这样做的方式是,您被迫为每个导入选择一个名称,将其留给您选择的名称以避免冲突,而不是让导入相互破坏。

我认为您可以做类似的事情,但只能使用 .d.ts 文件。 jquery.d.ts 做到了,但我并不是 100% 了解它的工作原理。你可以简单地说:

// where the file is really Stuff.d.ts
import "./Stuff";

关于import - TypeScript import * 不创建别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31625206/

相关文章:

c# - MEF 导入 null

angular - index.html 中的条件视口(viewport)元标记

node.js - 如何使用 TypeScript 在输出目录中包含 node_modules

node.js - 带有适用于 Linux 的 Windows 子系统的 Windows 10 上 VSCode 中的 Typescript 构建任务

javascript - Next.js 项目中 React-pdf 的 Webpack 配置

java - 导入自定义标签库

java - 为什么这些 Java 类名必须在 Clojure 中完全限定?

java - 如何将旧数据转换到新系统?使用 sql 或托管代码?

Magento 1.7 导入/导出挂起

typescript - TS抽象方法实现可以定义union-type的任意元素作为参数