Giter Site home page Giter Site logo

Comments (6)

MangelMaxime avatar MangelMaxime commented on June 14, 2024

I believe in general when importing files in JavaScript, it is recommended to set the extension.

This is because, resolution of the import is dependant on the runtime and if you are in the browser for example. Then it can't guess the extension of the file because it doesn't have access to the file system.

When generating to TypeScript, Fable should use the .ts file path in the import statement as this is the actual name of the file on the disk.

from fable.

eagle-k avatar eagle-k commented on June 14, 2024

After additional research, it appears that this is (or should be) considered a bug in Next.js.
vercel/next.js#59744

I am not sure it is reasonable for the Fable compiler to address this issue.

from fable.

MangelMaxime avatar MangelMaxime commented on June 14, 2024

I think when generating TypeScript Fable should import files using .ts because this is what you would write manually.

Unless, this is interop import like import "XX" "file.ext" then in such cases we need to respect what the user provided.

from fable.

ncave avatar ncave commented on June 14, 2024

@MangelMaxime

I think when generating TypeScript Fable should import files using .ts

Here is the reason why TypeScript compiler doesn't want to support .ts extensions for imports.

OTOH, some runtimes only support imports with .ts extensions, e.g. Deno.

Perhaps we can introduce another compiler flag just for the TypeScript import extension.
It may provide more flexibility over the generated TS imports, but we should probably keep the defaults as they are today.

(Technically, using .ts extensions can be enabled in TypeScript, but only when you don't actually need it to emit any code, just use it for type-checking in a pipeline or UI).

from fable.

MangelMaxime avatar MangelMaxime commented on June 14, 2024

I didn't know about that.

Seems like the current Fable behaviour is the recommended way from TypeScript team. And so indeed if we want to address this issue we should add a new flag.

The question is it worth adding it?

from fable.

MangelMaxime avatar MangelMaxime commented on June 14, 2024

I am closing this issue for now. It seems like we are doing the correct generation and adding a new flag could be confusing.

We can re-visit in the future if needed.

from fable.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.