Issue
Update
No import was required. Instead, I needed to add a reference to the top of the file. So the first line of my WebAPI.js should have been /// <reference path ="../typings/jquery/jquery.d.ts"/> instead of import { $ } from '../jquery-3.1.1';
I am trying to import jQuery to use in a Typescript file, but I am receiving a variety of errors with everything I try. I followed the solutions here and here, but without any luck.
tsconfig.json
{
"compilerOptions": {
"removeComments": true,
"preserveConstEnums": true,
"out": "Scripts/CCSEQ.Library.js",
"module": "amd",
"sourceMap": true,
"target": "es5",
"allowJs": true
}
WebAPI.js
import { $ } from '../jquery-3.1.1';
export class ExpenseTransaction extends APIBase {
constructor() {
super();
}
Get(): void {
let expenses: Array<Model.ExpenseTransaction>;
let self = this;
$.ajax({
url: this.Connection,
type: "GET",
contentType: "application/json",
dataType: "json",
success: function (data: any): void {
expenses = self.ConvertToEntity(data.value);
},
error: function (data: any): void { console.log(data.status); }
});
};
}
I have also tried import * as $ from '../jquery.3.1.1'
Errors
Module jquery-3.1.1 has no exported member $Property ajax does not exist on type (selector: any, context: any) => any
Solution
An import is not required. Instead, add a reference to the Typescript definition file the top of the file. So the first line of the WebAPI.js should be
/// <reference path ="../typings/jquery/jquery.d.ts"/>
instead of
import { $ } from '../jquery-3.1.1';
According to the DefinitelyTyped wiki:
A TypeScript declaration file is way of defining the types, functions and parameters in an external third-party JavaScript library. By using a declaration file in your TypeScript code will enable Intellisense and type checking against the external library you are using.
jquery.d.ts is a part of the DefinitelyTyped Library found on GitHub. Definitely Typed can be include in Visual Studio projects via the NuGet Package Manager.
Answered By - Tim Hutchison
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.