TypeScript提供了定义全局外部模块的选项。例如,如果我从外部加载了jQuery库,则可以设置全局定义,而不必将其复制到TypeScript包中。但是,当我尝试对'moment'模块执行相同操作时,编译器不会导入它正在输入的内容。
这是我的tsconfig.json
,compilerOptions
部分的内容
"compilerOptions": {
"outDir": "../out-tsc/app",
"module": "es2015",
"types": ["jquery", "moment"]
}
以下是使用以下定义的代码片段:
console.log($);
console.log(moment); // error TS2304: Cannot find name 'moment'
因此,它对jQuery很好,但对MomentJS不起作用。我还将@types/jquery
和moment
添加到package.json
并安装到node_modules
中。
我知道可以使用ES6导入语法,但是它将把它包含在一个包中,我想避免使用它,因为它已经被加载到应用程序的另一个位置。
答案 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>
在文件顶部。