【发布时间】:2016-05-29 02:23:00
【问题描述】:
有人可以解释一下使用 Typescript 在 NodeJS 中导出和导入是如何工作的吗?
我的设置是:
- NodeJS
- Typescript 中的所有内容
- TSLint
- 打字
我在搞乱导出/导入,而不是做一些正确的编码,这让我发疯,并且找不到任何关于它如何工作的正确解释。
导入
你能解释一下吗:
var module = require ("module");
import module = require("module");
import module from "module";
import {something} from "module";
import * as module from "module";
导出
你能解释一下吗
export = something;
export default something;
export interface|class something;
问题
- 如何在不启动类的情况下正确导出/导入类
- 如何正确导出/导入已启动的类(构造已运行)
- 如何正确导出/导入类和接口
- 如何正确导出/导入类和多个接口
- 什么时候使用模块声明,它们有什么用,如果我尝试使用它们,为什么 tslint 会向我抛出错误。
我似乎找不到正确的导出和导入方法,所以我的 IDE 没有被红色覆盖,并且向我抛出了数百个错误。
一般问题
- 有没有办法使用 nodejs/typescript/tslint 不出错?
- TSLint 对我输入的几乎所有内容都大喊大叫...非常令人沮丧,因为对大多数错误的解释为 0。它甚至值得使用吗?
问题不胜枚举,但我敢肯定,一旦上面的一些问题得到了回答,我就可以继续回答其余的问题了。
感谢您提出这样一个笼统的问题,但我的挫败感刚刚达到顶峰......
【问题讨论】:
-
是的,将您的 TypeScript 代码分成多个文件以解决分离问题目前与 blashphemy 相当。您需要在使用内部命名空间 (!) 时引用源文件以正确排序,或者需要将编译的代码限制为模块加载系统 (!!) 语法,以便编译的代码可以运行 (!!!)。我希望这将在 非常 不久的将来解决,因为目前 TypeScript 远不是“应用程序级 Javascript 开发”的一个不错的选择(没有冗长而痛苦的项目配置,是)。
-
@JohnWhite 拥有模块是一件好事,因此它们引入了 Javascript (ES6/2015)。多个命名导出可以在单个 TS 文件中重新组合。尽量避免在 Typescript 中使用
namespaces -
@BrunoGrieder 确实是这样,但当您(应该)能够将项目无缝编译成可执行资源(在本例中为 Javascript)时,情况并非如此。但这只是我的看法。
标签: node.js import typescript tslint