diff --git a/src/compiler/core.ts b/src/compiler/core.ts index 78e308761c8..2ca3b89db3b 100644 --- a/src/compiler/core.ts +++ b/src/compiler/core.ts @@ -2668,15 +2668,16 @@ namespace ts { export function getSupportedExtensions(options?: CompilerOptions, extraFileExtensions?: ReadonlyArray): ReadonlyArray { const needJsExtensions = options && options.allowJs; - let extensions: string[] = needJsExtensions ? [...allSupportedExtensions] : [...supportedTypeScriptExtensions]; - if (extraFileExtensions) { - extensions = [ - ...extensions, - ...extraFileExtensions.filter(x => x.scriptKind === ScriptKind.Deferred || needJsExtensions && isJavaScriptLike(x.scriptKind)).map(x => x.extension), - ]; + if (!extraFileExtensions || extraFileExtensions.length === 0) { + return needJsExtensions ? allSupportedExtensions : supportedTypeScriptExtensions; } + const extensions = [ + ...needJsExtensions ? allSupportedExtensions : supportedTypeScriptExtensions, + ...extraFileExtensions.filter(x => x.scriptKind === ScriptKind.Deferred || needJsExtensions && isJavaScriptLike(x.scriptKind)).map(x => x.extension) + ]; + return deduplicate(extensions, equateStringsCaseSensitive, compareStringsCaseSensitive); }