mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-03-30 02:04:32 +00:00
DocumentFragment was added earlier, but Document isn't assignable to DocumentFragment in Typescript 3.9, so both need to be part of the union that makes up Node.
Usage
Global
When jQuery is globally available, you can use jQuery and $ directly.
Importing (with a global DOM available)
When you want to import jQuery as a module and have a global DOM available (e.g. browser and browser-like environments):
import jQuery = require('jquery');
Importing (without a global DOM available)
When you want to import jQuery as a module and do not have a global DOM available (e.g. Node.js environment):
import jQueryFactory = require('jquery');
const jQuery = jQueryFactory(window, true);
Note that while the factory function ignores the second parameter, it is required to get correct type declarations.
Project structure
- jquery-tests.ts
- Tests that exercise TypeScript-specific usage and cases not covered by other test files.
- test/example-tests.ts
- Tests generated from examples in jQuery documentation.
- test/longdesc-tests.ts
- Tests generated from non-example snippets in jQuery documentation.
- test/learn-tests.ts
- Tests imported from examples in jQuery Learning Center.
- test/jquery-window-module-tests.ts
test/jquery-slim-window-module-tests.ts- Tests importing jQuery with a DOM available
- test/jquery-no-window-module-tests.ts
test/jquery-slim-no-window-module-tests.ts- Tests importing jQuery without a DOM available
Authoring type definitions for jQuery plugins
$.fn is represented by JQuery.
$ is represented by JQueryStatic.
Declare an interface that has the plugin's overloads as call signatures and static members as properties.
interface MyPlugin {
settings: MyPluginSettings;
(behavior: 'enable'): JQuery;
(settings?: MyPluginSettings): JQuery;
}
interface MyPluginSettings {
title?: string;
}
Then declare a property on JQuery with your plugin's type.
interface JQuery {
myPlugin: MyPlugin;
}