(type)
| 68210 | // literal { a: 123, b: x => true } is marked non-inferable because it contains a context sensitive |
| 68211 | // arrow function, but is considered partially inferable because property 'a' has an inferable type. |
| 68212 | function isPartiallyInferableType(type) { |
| 68213 | return !(ts.getObjectFlags(type) & 262144 /* ObjectFlags.NonInferrableType */) || |
| 68214 | isObjectLiteralType(type) && ts.some(getPropertiesOfType(type), function (prop) { return isPartiallyInferableType(getTypeOfSymbol(prop)); }) || |
| 68215 | isTupleType(type) && ts.some(getTypeArguments(type), isPartiallyInferableType); |
| 68216 | } |
| 68217 | function createReverseMappedType(source, target, constraint) { |
| 68218 | // We consider a source type reverse mappable if it has a string index signature or if |
| 68219 | // it has one or more properties and is of a partially inferable type. |
no test coverage detected