(type)
| 58743 | } |
| 58744 | } |
| 58745 | function getPropertiesOfUnionOrIntersectionType(type) { |
| 58746 | if (!type.resolvedProperties) { |
| 58747 | var members = ts.createSymbolTable(); |
| 58748 | for (var _i = 0, _a = type.types; _i < _a.length; _i++) { |
| 58749 | var current = _a[_i]; |
| 58750 | for (var _b = 0, _c = getPropertiesOfType(current); _b < _c.length; _b++) { |
| 58751 | var prop = _c[_b]; |
| 58752 | if (!members.has(prop.escapedName)) { |
| 58753 | var combinedProp = getPropertyOfUnionOrIntersectionType(type, prop.escapedName); |
| 58754 | if (combinedProp) { |
| 58755 | members.set(prop.escapedName, combinedProp); |
| 58756 | } |
| 58757 | } |
| 58758 | } |
| 58759 | // The properties of a union type are those that are present in all constituent types, so |
| 58760 | // we only need to check the properties of the first type without index signature |
| 58761 | if (type.flags & 1048576 /* TypeFlags.Union */ && getIndexInfosOfType(current).length === 0) { |
| 58762 | break; |
| 58763 | } |
| 58764 | } |
| 58765 | type.resolvedProperties = getNamedMembers(members); |
| 58766 | } |
| 58767 | return type.resolvedProperties; |
| 58768 | } |
| 58769 | function getPropertiesOfType(type) { |
| 58770 | type = getReducedApparentType(type); |
| 58771 | return type.flags & 3145728 /* TypeFlags.UnionOrIntersection */ ? |
no test coverage detected
searching dependent graphs…