From a08af77b70c8c63509a2f8bfea922e5f14c79e0c Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Tue, 14 Aug 2018 16:26:44 +0200 Subject: [PATCH] refactor: fix return type of `tryCall` (#25481) PR Close #25481 --- packages/language-service/src/ts_plugin.ts | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/packages/language-service/src/ts_plugin.ts b/packages/language-service/src/ts_plugin.ts index d805a2668d..e021355fe9 100644 --- a/packages/language-service/src/ts_plugin.ts +++ b/packages/language-service/src/ts_plugin.ts @@ -26,51 +26,50 @@ export function create(info: any /* ts.server.PluginCreateInfo */): ts.LanguageS const proxy: ts.LanguageService = Object.create(null); let oldLS: ts.LanguageService = info.languageService; - function tryCall(fileName: string | undefined, callback: () => T): T { + function tryCall(fileName: string | undefined, callback: () => T): T|undefined { if (fileName && !oldLS.getProgram() !.getSourceFile(fileName)) { - return undefined as any as T; + return undefined; } try { return callback(); - } catch (e) { - return undefined as any as T; + } catch { + return undefined; } } - function tryFilenameCall(m: (fileName: string) => T): (fileName: string) => T { + function tryFilenameCall(m: (fileName: string) => T): (fileName: string) => T | undefined { return fileName => tryCall(fileName, () => (m.call(ls, fileName))); } function tryFilenameOneCall(m: (fileName: string, p: P) => T): (filename: string, p: P) => - T { + T | undefined { return (fileName, p) => tryCall(fileName, () => (m.call(ls, fileName, p))); } function tryFilenameTwoCall(m: (fileName: string, p1: P1, p2: P2) => T): ( - filename: string, p1: P1, p2: P2) => T { + filename: string, p1: P1, p2: P2) => T | undefined { return (fileName, p1, p2) => tryCall(fileName, () => (m.call(ls, fileName, p1, p2))); } function tryFilenameThreeCall(m: (fileName: string, p1: P1, p2: P2, p3: P3) => T): - (filename: string, p1: P1, p2: P2, p3: P3) => T { + (filename: string, p1: P1, p2: P2, p3: P3) => T | undefined { return (fileName, p1, p2, p3) => tryCall(fileName, () => (m.call(ls, fileName, p1, p2, p3))); } function tryFilenameFourCall( m: (fileName: string, p1: P1, p2: P2, p3: P3, p4: P4) => - T): (fileName: string, p1: P1, p2: P2, p3: P3, p4: P4) => T { + T): (fileName: string, p1: P1, p2: P2, p3: P3, p4: P4) => T | undefined { return (fileName, p1, p2, p3, p4) => tryCall(fileName, () => (m.call(ls, fileName, p1, p2, p3, p4))); } function tryFilenameFiveCall( m: (fileName: string, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5) => - T): (fileName: string, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5) => T { + T): (fileName: string, p1: P1, p2: P2, p3: P3, p4: P4, p5: P5) => T | undefined { return (fileName, p1, p2, p3, p4, p5) => tryCall(fileName, () => (m.call(ls, fileName, p1, p2, p3, p4, p5))); } - function typescriptOnly(ls: ts.LanguageService): ts.LanguageService { const languageService: ts.LanguageService = { cleanupSemanticCache: () => ls.cleanupSemanticCache(),