diff --git a/packages/vue-tsc/src/proxy.ts b/packages/vue-tsc/src/proxy.ts index 658161c64..118e5b182 100644 --- a/packages/vue-tsc/src/proxy.ts +++ b/packages/vue-tsc/src/proxy.ts @@ -60,15 +60,14 @@ export function createProgramProxy( }); tsRuntime.update(); // must update before getProgram() to update virtual scripts - const tsProgram = tsRuntime.getTsLs().getProgram(); - if (!tsProgram) - throw '!tsProgram'; - const proxyApis = apis.register(ts, tsRuntime); - const program = new Proxy(tsProgram, { - get: (target: any, property: keyof typeof proxyApis) => { + const program = new Proxy({} as ts.Program, { + get: (_, property: keyof ts.Program) => { tsRuntime.update(); - return proxyApis[property] || target[property]; + if (property in proxyApis) { + return proxyApis[property as keyof typeof proxyApis]; + } + return tsRuntime.getTsLs().getProgram()![property]; }, });