TypeScript-全局导入不适用于MomentJS

时间:2018-11-21 18:43:52

标签: typescript webpack momentjs

TypeScript提供了定义全局外部模块的选项。例如,如果我从外部加载了jQuery库,则可以设置全局定义,而不必将其复制到TypeScript包中。但是,当我尝试对'moment'模块执行相同操作时,编译器不会导入它正在输入的内容。

这是我的tsconfig.jsoncompilerOptions部分的内容

"compilerOptions": {
    "outDir": "../out-tsc/app",
    "module": "es2015",
    "types": ["jquery", "moment"]
}

以下是使用以下定义的代码片段:

console.log($);
console.log(moment); // error TS2304: Cannot find name 'moment'

因此,它对jQuery很好,但对MomentJS不起作用。我还将@types/jquerymoment添加到package.json并安装到node_modules中。

我知道可以使用ES6导入语法,但是它将把它包含在一个包中,我想避免使用它,因为它已经被加载到应用程序的另一个位置。

1 个答案:

答案 0 :(得分:0)

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<ul class="nav nav-tabs" id="myTab">
  <li class="active">
    <a data-target="#home" data-toggle="tab">Enter</a>
  </li>
  <li>
    <a data-target="#profile" data-toggle="tab" >Display</a>
  </li>
  <li>
    <a data-target="#messages" data-toggle="tab">Search</a>
  </li>
</ul>
<div class="tab-content">
  <div class="tab-pane active" id="home">
    <iframe src="https://stacksnippets.net/"></iframe> 
  </div>
  <div class="tab-pane" id="profile">
    <iframe src="https://stacksnippets.net/"></iframe>
  </div>
  <div class="tab-pane" id="messages">
    <iframe src="https://stacksnippets.net"></iframe>   
  </div>      
</div>

在文件顶部。