Disallow the use of undefined as an explicit type in TypeScript and instead use optional operator (?) instead.
This rule disallows the use of undefined as an explicit type in TypeScript. Instead, developers should use optional properties or null.
Examples of incorrect code for this rule ❌
function example(param: string | undefined) {}
class Test { constructor(public prop: string | undefined) {} }
interface Example { prop: string | undefined; }Examples of correct code for this rule ✅
function example(param?: string) {}
class Test { constructor(public prop?: string) {} }
interface Example { prop?: string; }Install the package using npm:
npm install eslint-plugin-no-explicit-undefined --save-devInstall the package using yarn:
yarn add eslint-plugin-no-explicit-undefined --devInstall the package using pnpm:
pnpm install eslint-plugin-no-explicit-undefined --save-devTo configure the rule, add it to your ESLint configuration file (.eslintrc.json, .eslintrc.js, etc.):
{
"extends": ["custom"],
"plugins": ["no-undefined-type-declaration"],
"rules": {
"no-undefined-type-declaration/no-undefined-type": "error"
}
}MIT