code: function getTypingNamesFromSourceFileNames(fileNames) {
                  var jsFileNames = ts.filter(fileNames, ts.hasJavaScriptFileExtension);
                  var inferredTypingNames = ts.map(jsFileNames, function (f) { return ts.removeFileExtension(ts.getBaseFileName(f.toLowerCase())); });
                  var cleanedTypingNames = ts.map(inferredTypingNames, function (f) { return f.replace(/((?:\.|-)min(?=\.|$))|((?:-|\.)\d+)/g, ""); });
                  if (safeList !== EmptySafeList) {
                      mergeTypings(ts.filter(cleanedTypingNames, function (f) { return f in safeList; }));
                  }
                  var hasJsxFile = ts.forEach(fileNames, function (f) { return ts.ensureScriptKind(f, ts.getScriptKindFromFileName(f)) === 2 /* JSX */; });
                  if (hasJsxFile) {
                      mergeTypings(["react"]);
                  }
              }
docs: Infer typing names from given file names. For example, the file name "jquery-min.2.3.4.js"
  should be inferred to the 'jquery' typing name; and "angular-route.1.2.3.js" should be inferred
  to the 'angular-route' typing name.
  @param fileNames are the names for source files in the project