(type, source, typeParameters, typeArguments)
| 57906 | return needApparentType ? getApparentType(type) : type; |
| 57907 | } |
| 57908 | function resolveObjectTypeMembers(type, source, typeParameters, typeArguments) { |
| 57909 | var mapper; |
| 57910 | var members; |
| 57911 | var callSignatures; |
| 57912 | var constructSignatures; |
| 57913 | var indexInfos; |
| 57914 | if (ts.rangeEquals(typeParameters, typeArguments, 0, typeParameters.length)) { |
| 57915 | members = source.symbol ? getMembersOfSymbol(source.symbol) : ts.createSymbolTable(source.declaredProperties); |
| 57916 | callSignatures = source.declaredCallSignatures; |
| 57917 | constructSignatures = source.declaredConstructSignatures; |
| 57918 | indexInfos = source.declaredIndexInfos; |
| 57919 | } |
| 57920 | else { |
| 57921 | mapper = createTypeMapper(typeParameters, typeArguments); |
| 57922 | members = createInstantiatedSymbolTable(source.declaredProperties, mapper, /*mappingThisOnly*/ typeParameters.length === 1); |
| 57923 | callSignatures = instantiateSignatures(source.declaredCallSignatures, mapper); |
| 57924 | constructSignatures = instantiateSignatures(source.declaredConstructSignatures, mapper); |
| 57925 | indexInfos = instantiateIndexInfos(source.declaredIndexInfos, mapper); |
| 57926 | } |
| 57927 | var baseTypes = getBaseTypes(source); |
| 57928 | if (baseTypes.length) { |
| 57929 | if (source.symbol && members === getMembersOfSymbol(source.symbol)) { |
| 57930 | members = ts.createSymbolTable(source.declaredProperties); |
| 57931 | } |
| 57932 | setStructuredTypeMembers(type, members, callSignatures, constructSignatures, indexInfos); |
| 57933 | var thisArgument = ts.lastOrUndefined(typeArguments); |
| 57934 | for (var _i = 0, baseTypes_1 = baseTypes; _i < baseTypes_1.length; _i++) { |
| 57935 | var baseType = baseTypes_1[_i]; |
| 57936 | var instantiatedBaseType = thisArgument ? getTypeWithThisArgument(instantiateType(baseType, mapper), thisArgument) : baseType; |
| 57937 | addInheritedMembers(members, getPropertiesOfType(instantiatedBaseType)); |
| 57938 | callSignatures = ts.concatenate(callSignatures, getSignaturesOfType(instantiatedBaseType, 0 /* SignatureKind.Call */)); |
| 57939 | constructSignatures = ts.concatenate(constructSignatures, getSignaturesOfType(instantiatedBaseType, 1 /* SignatureKind.Construct */)); |
| 57940 | var inheritedIndexInfos = instantiatedBaseType !== anyType ? getIndexInfosOfType(instantiatedBaseType) : [createIndexInfo(stringType, anyType, /*isReadonly*/ false)]; |
| 57941 | indexInfos = ts.concatenate(indexInfos, ts.filter(inheritedIndexInfos, function (info) { return !findIndexInfo(indexInfos, info.keyType); })); |
| 57942 | } |
| 57943 | } |
| 57944 | setStructuredTypeMembers(type, members, callSignatures, constructSignatures, indexInfos); |
| 57945 | } |
| 57946 | function resolveClassOrInterfaceMembers(type) { |
| 57947 | resolveObjectTypeMembers(type, resolveDeclaredMembers(type), ts.emptyArray, ts.emptyArray); |
| 57948 | } |
no test coverage detected
searching dependent graphs…