错误TS2304:在angular 5组件中找不到$

fla*_*ash 5 html jquery jquery-selectors typescript angular5

我在角度组件中有一个侧导航栏,它在类似于此的点击上展开.用于创建导航栏的HTML代码段为:

HTML:

正如名称(openNav())所示,以下HTML代码将展开导航栏:

<div>
    <img (click)="openNav()" src="/imagepath" id="image">
</div>
Run Code Online (Sandbox Code Playgroud)

以下HTML代码 将关闭导航栏:

<div id="mySidenav" class="sidenav">
    <ul class="navbar-nav mr-auto" id="sidenavContent">
        <li class="nav-item" id="close-btn">
            <img class="closebtn" (click)="closeNav()" id="white-cross" src="/assets/imagepath">
        </li>
        <li class="nav-item" id="close-btn">
           <p> Item 1 </p>
        </li>
        <li class="nav-item">
            <p> Item 2 </p>
        </li>

    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)



打字稿:

使用的打字稿是:

openNav() 
 {
     $("#mySidenav").css("width", "50%");   // Line A
 }

 closeNav() 
 {
    $("#mySidenav").css("width", "0%");   // Line B
 }
Run Code Online (Sandbox Code Playgroud)

上述打字稿代码不包含在ngOnInit()函数中.




问题陈述 :

当我做ng serve我的命令提示符下,我收到以下错误:

错误TS2304:找不到名称'$'.


$表示(行线A和线B的内部在上述打字稿)openNav()和closeNav()函数以上的打字稿.

我想知道这个错误背后的主要原因是什么,因为有时我得到错误,有时候我不做ng-serve.

Osc*_*Paz 1

我认为$jQuery。您必须添加jQuery到依赖项并将其导入到您正在使用它的文件中。我建议还添加 jQuery 的类型定义:npm install @types/jquery --save-dev

如果您以任何其他方式导入 jQuery,则只需添加类型即可。