Comments (6)
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.
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.
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.
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.
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.
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)
- Creating a `DateTime` with `DateTimeKind` should use the `DateTimeKind` and not a literal int
- [Python] How to works with `Kind` property on the `DateTime` type? HOT 2
- [JavaScript] Makes a pass on the implementation of `DateTime.ToString` HOT 1
- [Fable 4.3.0][F# 7.0] String interpolation shows error (but compiles fine) HOT 2
- Somethings feels wrong with Fable console output (logs are not added in the correct place)
- Compiler generates invalid Javascript when composing functions with partial application HOT 1
- Why does Import relative paths is changed by Fable depending on the destination ? HOT 2
- Support ListCollector HOT 2
- EqualityComparer<'T>.Default not working. HOT 4
- Regression in the logging of Exceptions? HOT 3
- [Python] Nested type with Custom Equality gives false negative equality
- Equality of ResizeArrays different in .NET and Fable HOT 1
- Temp csproj gererated by fable break ionide exntension HOT 5
- Rewrite Fable.CLI HOT 17
- Support Result.isOk and Result.isError HOT 4
- Should `Choice.d.ts` be kept? HOT 2
- IndexOutOfRangeException for bad index? HOT 2
- Implement rest of Result module HOT 2
- Change Fantomas max_line_length and reformat HOT 1
- Allows to redirect a `Project reference` or `NuGet package` to be consumed via local folder or NPM packages instead of inlining it inside of the main project output HOT 13
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fable.