title: Angular 6 - Property '$' does not exist on type 'Window'
body: <p>I am trying to use jQuery and jsGrid with my Angular 6 project, and it won't compile unless I comment offending part of code, and then once when it is compiled I comment and it works, but it gives error anyway. I am using Angular 6 CLI, IDE is Visual Studio Code, all latest versions. VS highlights jQuery alias i.e. $ sign as a problem</p>
  
  <p>Here is structure.directive.ts (I have to comment whole ngOnInit to start server, then uncomment it):</p>
  
  <pre><code>import { Directive, ElementRef, OnInit } from '@angular/core';
  
  @Directive({
    selector: '[structure]'
  })
  export class StructureDirective implements OnInit {
  
    clients = [
      { "Name": "Otto Clay", "Age": 25, "Country": 1, "Address": "Ap #897-1459 Quam Avenue", "Married": false },
      { "Name": "Connor Johnston", "Age": 45, "Country": 2, "Address": "Ap #370-4647 Dis Av.", "Married": true },
      { "Name": "Lacey Hess", "Age": 29, "Country": 3, "Address": "Ap #365-8835 Integer St.", "Married": false },
      { "Name": "Timothy Henson", "Age": 56, "Country": 1, "Address": "911-5143 Luctus Ave", "Married": true },
      { "Name": "Ramona Benton", "Age": 32, "Country": 3, "Address": "Ap #614-689 Vehicula Street", "Married": false }
    ];
  
    countries = [
      { Name: "", Id: 0 },
      { Name: "United States", Id: 1 },
      { Name: "Canada", Id: 2 },
      { Name: "United Kingdom", Id: 3 }
    ];
  
    constructor(private elementRef: ElementRef) { }
  
    ngOnInit() {
      window.$(this.elementRef.nativeElement).jsGrid({
        width: "100%",
        height: "400px",
  
        inserting: true,
        editing: true,
        sorting: true,
        paging: true,
  
        data: this.clients,
  
        fields: [
          { name: "Name", type: "text", width: 150, validate: "required" },
          { name: "Age", type: "number", width: 50 },
          { name: "Address", type: "text", width: 200 },
          { name: "Country", type: "select", items: this.countries, valueField: "Id", textField: "Name" },
          { name: "Married", type: "checkbox", title: "Is Married", sorting: false },
          { type: "control" }
        ]
      })
    }
  }
  </code></pre>
  
  <p>and here is index.html</p>
  
  <pre><code>&lt;!doctype html&gt;
  &lt;html lang="en"&gt;
  &lt;head&gt;
    &lt;meta charset="utf-8"&gt;
    &lt;title&gt;Aug4&lt;/title&gt;
    &lt;base href="/"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;
    &lt;link rel="icon" type="image/x-icon" href="favicon.ico"&gt;
  
    &lt;link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jsgrid/1.5.3/jsgrid.min.css" /&gt;
    &lt;link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jsgrid/1.5.3/jsgrid-theme.min.css" /&gt;
  
    &lt;script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"&gt;&lt;/script&gt;
    &lt;script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jsgrid/1.5.3/jsgrid.min.js"&gt;&lt;/script&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;app-root&gt;Loading...&lt;/app-root&gt;
  &lt;/body&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>Error is:</p>
  
  <pre><code>Date: 2018-08-26T14:01:56.175Z - Hash: fb473e9c8d7de6bf4569 - Time: 224ms
  4 unchanged chunks
  chunk {main} main.js, main.js.map (main) 52.1 kB [initial] [rendered]
  i ｢wdm｣: Compiled successfully.
  ERROR in src/app/structure.directive.ts(26,12): error TS2339: Property '$' does not exist on type 'Window'.
  </code></pre>
  
  <p>How can I solve this?</p>