I'm trying to extend the default JQuery
interface and the default object jQuery
by a function in TypeScript
Code
/// <reference path="jquery.d.ts" />
namespace MyNameSpace {
var $ = jQuery;
export interface JQuery {
test(options: Object): JQuery;
}
$.fn.test = function(options: Object): JQuery {
if (this.length === 0) {
console.log('Error!');
return this;
}
console.log(options);
return this;
}
export var testBody = function() {
jQuery('body').test({ 'HELLO': 'TEST' });
}
}
The Problem
Now I'm running the following code in my console:
tsc -m amd -t ES5 Test.ts -d
I'm getting this error: Test.ts(17,19): error TS2339: Property 'test' does not exist on type 'JQuery'.
Any solution for this?
This works for me:
/// <reference path="typings/jquery/jquery.d.ts" />
interface JQuery {
test(options: Object): JQuery;
}
namespace MyNameSpace {
var $ = jQuery;
$.fn.test = function(options: Object): JQuery {
if (this.length === 0) {
console.log('Error!');
return this;
}
console.log(options);
return this;
};
export var testBody = function() {
jQuery('body').test({ 'HELLO': 'TEST' });
}
}
EDIT: 2nd solution
/// <reference path="typings/jquery/jquery.d.ts" />
namespace MyNameSpace {
interface JQueryX extends JQuery {
test(options: Object): JQuery;
}
$.fn.test = function(options: Object): JQuery {
if (this.length === 0) {
console.log('Error!');
return this;
}
console.log(options);
return this;
};
export var testBody = function() {
let a:JQueryX = <JQueryX>$('body');
a.test({ 'HELLO': 'TEST' });
// OR
(<JQueryX>$('body')).test({ 'HELLO': 'TEST' });
}
}
You can make the testBody
nicer by some refactoring.
Firebase Cloud Functions: PubSub, "res.on is not a function"
TypeError: Cannot read properties of undefined (reading 'createMessageComponentCollector')
I have a Lightbox, and inside a centered child with content. The child also has a close button.
I am working on Codeigniter, i am facing one problem i have to show the user error message when he is uploading any other file type to server using ajax. I do not want to load view again to show the error message.
On my view i have select list like on picture and from plus button its available to add new one. After adding new one the list is not refreshing.