Open AngusMorton opened 6 months ago
This issue seems related to the auto import, or the way the typescript gets generated for the auto imports. Doing a manual import of the tag works as-expected:
import titleComponent from "./my-title.marko";
export interface Input {
name?: string;
}
<div>${input.name++}</div>
^^^^^^^^^^ 'input.name' is possibly 'undefined'.
$ input.name++;
^^^^^^^^^^ 'input.name' is possibly 'undefined'.
<titleComponent/>
<div>${input.name++}</div>
^^^^^^^^^^ 'input.name' is possibly 'undefined'.
I've got a reproduction here that is just the basic-ts
example with most of the code removed.
Interestingly, doing import titleComponent from "<my-title>"
also causes the bug while doing the import path ourselves doesn't. The extracted script is identical between <my-title>
and ./my-title.marko
...
On Windows, after a custom tag is used, the diagnostics are shown at the incorrect positions or not shown at all.
marko-type-check
still shows the correct errors in the correct positions.Given the following template, every instance of
input.name++
should have an error underline.The error is shown in the wrong position and only once:
Moving the use of
<my-title>
below the errors will cause the diagnostics above to be correctly rendered and the diagnostics below to be ignored.Removing the use of
<my-title>
shows all of the diagnostics in the right places as expected:Environment
Windows :( Marko VSCode v1.1.15 VSCode 1.85.1