(signature)
| 59817 | } |
| 59818 | } |
| 59819 | function getTypePredicateOfSignature(signature) { |
| 59820 | if (!signature.resolvedTypePredicate) { |
| 59821 | if (signature.target) { |
| 59822 | var targetTypePredicate = getTypePredicateOfSignature(signature.target); |
| 59823 | signature.resolvedTypePredicate = targetTypePredicate ? instantiateTypePredicate(targetTypePredicate, signature.mapper) : noTypePredicate; |
| 59824 | } |
| 59825 | else if (signature.compositeSignatures) { |
| 59826 | signature.resolvedTypePredicate = getUnionOrIntersectionTypePredicate(signature.compositeSignatures, signature.compositeKind) || noTypePredicate; |
| 59827 | } |
| 59828 | else { |
| 59829 | var type = signature.declaration && ts.getEffectiveReturnTypeNode(signature.declaration); |
| 59830 | var jsdocPredicate = void 0; |
| 59831 | if (!type && ts.isInJSFile(signature.declaration)) { |
| 59832 | var jsdocSignature = getSignatureOfTypeTag(signature.declaration); |
| 59833 | if (jsdocSignature && signature !== jsdocSignature) { |
| 59834 | jsdocPredicate = getTypePredicateOfSignature(jsdocSignature); |
| 59835 | } |
| 59836 | } |
| 59837 | signature.resolvedTypePredicate = type && ts.isTypePredicateNode(type) ? |
| 59838 | createTypePredicateFromTypePredicateNode(type, signature) : |
| 59839 | jsdocPredicate || noTypePredicate; |
| 59840 | } |
| 59841 | ts.Debug.assert(!!signature.resolvedTypePredicate); |
| 59842 | } |
| 59843 | return signature.resolvedTypePredicate === noTypePredicate ? undefined : signature.resolvedTypePredicate; |
| 59844 | } |
| 59845 | function createTypePredicateFromTypePredicateNode(node, signature) { |
| 59846 | var parameterName = node.parameterName; |
| 59847 | var type = node.type && getTypeFromTypeNode(node.type); |
no test coverage detected
searching dependent graphs…