在这个javascript导入中做什么〜(代字号)?

时间:2017-03-30 09:34:18

标签: javascript reactjs typescript

在取自fountain-webapp typescript MVC示例(http://fountainjs.io/)的App.tsx中,导入包含以下行:

 <td>{{row[0]}}</td>
 <td>{{row[2]}}</td>

Visual Studio 2017强调此行(“找不到模块”),但它在浏览器中可以正常工作。我之前从未见过这种语法,也不知道它试图做什么?

这里有一张开放式机票:https://github.com/FountainJS/generator-fountain-react/issues/70

2 个答案:

答案 0 :(得分:15)

webpack结合使用的Tilde(~)表示针对node_modules执行查找以解析路径。

换句话说,它是预定义的alias,可解析为node_modules

import { IDispatch } from '~react-redux~redux';

相当于

import { IDispatch } from 'relative_path_to_node_modules/react-redux~redux';

编辑:不幸的是,我不能引用任何关于此的文档,它基于经验,欢迎您使用更准确的描述编辑此帖子。

现在我也注意到了~redux部分,所以你可能想查看other answer,因为我也很困惑。

答案 1 :(得分:4)

这是一个打字稿文件,import看起来像是typings生成的模块IMO。

我不熟悉打字稿,但typings 可能使用此~(代字号)格式来检查特定命名空间中的模块依赖关系。

根据Blake Embrey,在this帖子中打字github repo:

  

它是依赖项的命名空间。