Giter VIP home page Giter VIP logo

Comments (6)

eXon avatar eXon commented on August 29, 2024

Hi @corbin-mosher ,

The TypeScript types seem to be not working with your tsconfig configuration. I'm trying to dig deeper to find a solution to why, this is very unexpected.

from cookies.

corbin-mosher avatar corbin-mosher commented on August 29, 2024

@eXon, yeah, it is very confusing.

I even tried cloning the cookies project and running it through my normal build pattern and I have the same type issue.

The only way I have gotten it to work is to also export Cookies as a named export, not just the default. For some reason, with NodeNext tsconfig there is a struggle with this declared Cookies class, but only when its the default export 🙃

There have been one or two more npm packages that have had similar issues for me with default exports and NodeNext, so I am likely going to just stick with Bundler+ESNext for now and continue using unbuild (rollup) to handle build commands.

I am super curious though to learn what causes this hangup when building and resolving things purely with tsc+tsconfig. My guess is that there is some not very well known "specification" around ESM and types we are missing that has become required with the latest moduleResolution 🤷

from cookies.

eXon avatar eXon commented on August 29, 2024

@corbin-mosher This is fixed in 7.1.2, let me know if it works for you

from cookies.

corbin-mosher avatar corbin-mosher commented on August 29, 2024

@eXon, thanks! Types are working as expected now with NodeNext for moduleResolution in tsconfig.

I really appreciate the quick help.

from cookies.

corbin-mosher avatar corbin-mosher commented on August 29, 2024

@eXon, now that I have had time to sit down with this further, it seems to me that the post build script plan might need some alterations.

It is impacting imports of external dependencies as well. For example, in react-cookies the type file for CookieProvider is altered from:

import * as React from 'react';
import Cookies from 'universal-cookie';
import { ReactCookieProps } from './types';
export default class CookiesProvider extends React.Component<ReactCookieProps, any> {
    cookies: Cookies;
    constructor(props: ReactCookieProps);
    render(): React.JSX.Element;
}

to

import * as React from 'react.d.mts';
import Cookies from 'universal-cookie.d.mts';
import { ReactCookieProps } from './types.d.mts';
export default class CookiesProvider extends React.Component<ReactCookieProps, any> {
    cookies: Cookies;
    constructor(props: ReactCookieProps);
    render(): React.JSX.Element;
}

Its possible that the change on line 3 is OK since it is referencing a file directly. But I think the changes on line 1 & 2 would cause issues. Let me know what you think.

from cookies.

eXon avatar eXon commented on August 29, 2024

@corbin-mosher You're right! I've fixed the regex, let me know if 7.1.4 works

from cookies.

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.