An intersection type combines multiple types into one. This allows you to add together existing types to get a single type that has all the
features you need. However an intersection with a type without members doesn’t change the resulting type. In the opposite the usage of
any
or never
as part of an intersection will always results in any
or never
respectively. This is
almost certainly an error.
Noncompliant Code Example
function foo(p: MyType & null) { // Noncompliant
// ...
}
function bar(p: MyType & any) { // Noncompliant
// ...
}
Compliant Solution
function foo(p: MyType | null) {
// ...
}
// or
function foo(p: MyType & AnotherType) {
// ...
}
function bar(p: any) {
// ...
}