Skip to content

Support lang="ts" on all blocks except <template> #207

Open
@Tahul

Description

@Tahul

As for now, I have been using <style lang="ts"> blocks for https://pinceau.dev

Most users complained that there is no way to get ESLint working in that context.

I already get syntax coloring and syntax checking from VSCode and TypeScript, as lang="ts" properly triggers it.

Now, I would like to make ESLint compatible with such blocks, whether they are <style> ones or any other <customBlock>.

As seen here, Vue supports customBlocks as any other SFCBlock, and so it supports lang="ts" attribute:
https://github.com/vuejs/core/blob/b775b71c788499ec7ee58bc2cf4cd04ed388e072/packages/compiler-sfc/src/parse.ts#L72C3-L72C15

Following a discussion with @ota-meshi, I will try to support lang="ts" in any other block.

With that feature, any lang="ts" block would be treated as an extension of <script> block and be appended to linted content as is.

That would mean it is not supported to redeclare the same variable name in both blocks, but I think it is expected behavior as a component can only output a single JS chunk anyways.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions