As I see, from examples, written by developers of TypeScript, they use some kind of stubs, for interoperability with JavaScript:
declare module Backbone {
export class Model {
constructor (attr? , opts? );
get(name: string): any;
set(name: string, val: any): void;
set(obj: any): void;
save(attr? , opts? ): void;
destroy(): void;
bind(ev: string, f: Function, ctx?: any): void;
toJSON(): any;
}
...
}
interface JQuery {
fadeIn(): JQuery;
fadeOut(): JQuery;
focus(): JQuery;
html(): string;
html(val: string): JQuery;
show(): JQuery;
addClass(className: string): JQuery;
removeClass(className: string): JQuery;
append(el: HTMLElement): JQuery;
val(): string;
val(value: string): JQuery;
attr(attrName: string): string;
}
That's looks weird. Can I omit writing such stub and just use jQuery
object and call it's methods? I expect, that it is possible, because TypeScript is a superset of JavaScript and if it's possible in JavaScript, it's probably should be possible in TypeScript too. What are best ways to cal JavaScript code from TypeScript?