# no-invalid-define > Disallow `define()` calls that do not match a valid AMD module signature. ‼️ **Problem** • ✅ **Recommended** • ❌ **Fixable** ## Details `define()` must be called with one of these signatures: | Signature | Description | |:--|:--| | `define(factory)` | Anonymous module, no dependencies | | `define([], factory)` | Anonymous module, dependencies | | `define('name', factory)` | Named module, no dependencies | | `define('name', [], factory)` | Named module, dependencies | where `factory` is either a function, arrow function, or object literal. ### ✅ Correct ```js define({}); ``` ```js define(() => {}); ``` ```js define(['foo'], {}); ``` ```js define(['foo'], (foo) => {}); ``` ```js define('my-module', {}); ``` ```js define('my-module', () => {}); ``` ```js define('my-module', ['foo'], {}); ``` ```js define('my-module', ['foo'], (foo) => {}); ``` ### ❌ Incorrect ```js define(); ``` ```js define('my-module'); ``` ```js define(['foo']); ``` ```js define(() => {}, []); ``` ## Introduced 1.0.0