docs/libs/typescript.js
function filterNamedImportOrExportCompletionItems(exportsOfModule, namedImportsOrExports) {
                var existingImportsOrExports = ts.createMap();
                for (var _i = 0, namedImportsOrExports_1 = namedImportsOrExports; _i < namedImportsOrExports_1.length; _i++) {
                    var element = namedImportsOrExports_1[_i];
                    // If this is the current item we are editing right now, do not filter it out
                    if (element.getStart() <= position && position <= element.getEnd()) {
                        continue;
                    }
                    var name_41 = element.propertyName || element.name;
                    existingImportsOrExports[name_41.text] = true;
                }
                if (!ts.someProperties(existingImportsOrExports)) {
                    return ts.filter(exportsOfModule, function (e) { return e.name !== "default"; });
                }
                return ts.filter(exportsOfModule, function (e) { return e.name !== "default" && !existingImportsOrExports[e.name]; });
            }
function filterNamedImportOrExportCompletionItems(exportsOfModule, namedImportsOrExports) {
                var existingImportsOrExports = ts.createMap();
                for (var _i = 0, namedImportsOrExports_1 = namedImportsOrExports; _i < namedImportsOrExports_1.length; _i++) {
                    var element = namedImportsOrExports_1[_i];
                    // If this is the current item we are editing right now, do not filter it out
                    if (element.getStart() <= position && position <= element.getEnd()) {
                        continue;
                    }
                    var name_41 = element.propertyName || element.name;
                    existingImportsOrExports[name_41.text] = true;
                }
                if (!ts.someProperties(existingImportsOrExports)) {
                    return ts.filter(exportsOfModule, function (e) { return e.name !== "default"; });
                }
                return ts.filter(exportsOfModule, function (e) { return e.name !== "default" && !existingImportsOrExports[e.name]; });
            }
function filterNamedImportOrExportCompletionItems ( exportsOfModule , namedImportsOrExports ) { var existingImportsOrExports = ts . createMap ( ) ; for ( var _i = 0 , namedImportsOrExports_1 = namedImportsOrExports ; _i < namedImportsOrExports_1 . length ; _i ++ ) { var element = namedImportsOrExports_1 [ _i ] ; // If this is the current item we are editing right now, do not filter it out if ( element . getStart ( ) <= position && position <= element . getEnd ( ) ) { continue ; } var name_41 = element . propertyName || element . name ; existingImportsOrExports [ name_41 . text ] = true ; } if ( ! ts . someProperties ( existingImportsOrExports ) ) { return ts . filter ( exportsOfModule , function ( e ) { return e . name !== "default" ; } ) ; } return ts . filter ( exportsOfModule , function ( e ) { return e . name !== "default" && ! existingImportsOrExports [ e . name ] ; } ) ; }
Filters out completion suggestions for named imports or exports.

@param exportsOfModule          The list of symbols which a module exposes.
@param namedImportsOrExports    The list of existing import/export specifiers in the import/export clause.

@returns Symbols to be suggested at an import/export clause, barring those whose named imports/exports
do not occur at the current position and have not otherwise been typed.
Filters out completion suggestions for named imports or exports .