打字稿,Requirejs,导入语句和别名

塞德

使用Java,导入确实非常简单明了。

使用以下语句导入:

import fr.domain.MyUtils;

然后,您可以像这样使用它:

MyUtils.myStaticMethod();

仅在同一文件中有两个时,才需要为MyUtils命名空间。

使用Typescript AMD和requirejs,情况似乎更加复杂。

这里是导入语句:

import u = require('fr/domain/MyUtils');

以及使用方式:

u.fr.domain.MyUtils.myStaticMethod();

非常详细...

我发现使用别名的唯一方法是将import语句加倍:

import u = require('fr/domain/MyUtils');
import MyUtils = u.fr.domain.MyUtils;

之后,您可以在模块中编写此代码:

MyUtils.myStaticMethod();

它更干净,但是Eclipse TS插件与此完全失去了,自动完成变得不稳定。在Visual Studio中,自动完成是可以的,但是必须执行两次“ F12转到定义”,这很烦人。

有一个更好的方法吗 ?还是我们应该使命名空间尽可能短?

C Snover

你这样做是错的。

您的“ fr / domain / MyUtils”模块应该只导出应该是MyUtils的内容。即它应该看起来像这样:

export function myStaticMethod() { /* ...code... */ }

它不应导出某些全局名称空间对象,也不应向从其他位置获得的某些全局名称空间对象添加任何内容。模块文件在目录中的自然放置使用外部模块时创建“命名空间”的方式。

如果操作正确,那么您的消费者将如下所示:

import MyUtils = require('fr/domain/MyUtils');
MyUtils.myStaticMethod();

或者,甚至更正确地使用ES模块语法:

import { myStaticMethod } from 'fr/domain/MyUtils';
myStaticMethod();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

打字稿+ RequireJs + AngularJs

来自分类Dev

带点的打字稿别名

来自分类Dev

导入语句不适用于打字稿

来自分类Dev

打字稿/角度的IF语句

来自分类常见问题

打字稿导入/ as与导入/要求?

来自分类Dev

打字稿中严格的打字别名

来自分类Dev

为许多导入模式和Intellisense编写打字稿

来自分类Dev

打字稿重复导入“时刻”

来自分类Dev

打字稿无法扩展导入

来自分类Dev

打字稿 - 了解导出/导入

来自分类Dev

重构 switch 语句打字稿

来自分类Dev

打字稿RequireJs快捷键+导航

来自分类Dev

打字稿RequireJs快捷键+导航

来自分类Dev

打字稿:别名长模块名

来自分类Dev

正确的打字稿类型别名

来自分类Dev

请解释涉及泛型和类型别名的这种打字稿语法

来自分类Dev

打字稿:如何在node_modules中导入和添加嵌套文件的类型?

来自分类Dev

无法导入打字稿模型,属性不会因typeof和引用错误而退出

来自分类Dev

从外部节点模块导入打字稿

来自分类Dev

打字稿-导入核心功能

来自分类Dev

打字稿导入文件夹

来自分类Dev

打字稿导入的对象未定义

来自分类Dev

导入静态函数打字稿

来自分类Dev

eslint导入/排序反应打字稿

来自分类Dev

打字稿路径导致错误导入

来自分类Dev

Azure生产打字稿导入失败

来自分类Dev

从外部节点模块导入打字稿

来自分类Dev

如何导入打字稿中的类型定义?

来自分类Dev

连接打字稿中的导入URL