Skip to content

Optionally resolved external types #7056

Closed

Description

let stream: MSStream;
const inputStream = stream.msDetachStream(); // any in lib.d.ts

// const inputStream = stream.msDetachStream() as Windows.Storage.Streams.IInputStream; from winrt.d.ts

Can we have a potential-any type information that resolves only when we have correct d.ts file? Some small type definitions in DefinitelyTyped refers much bigger ones e.g. node.d.ts that is not always required. (Imagine a library that supports standard types and Node.js types together.) I hope I can just include a small file without node.d.ts or any other unneeded large files.

Maybe somewhat related to old #1402.

Activity

  1. RyanCavanaugh commented on Feb 12, 2016

    @RyanCavanaugh
    Member

    If people are using just a very small portion of another library, would they be better served by using structural typing to stub out the useful portion of the consumed type? Just thinking out loud.

  2. saschanaz commented on Feb 12, 2016

    @saschanaz
    ContributorAuthor

    Ryan Cavanaugh (@RyanCavanaugh) I'm not sure I understand. Can you give me an example?

  3. RyanCavanaugh commented on Feb 12, 2016

    @RyanCavanaugh
    Member

    Like instead of

    function fn(): SomeOtherLibrary.Point;

    you could write

    function fn(): { x: number; y: number; }

    Assuming that the type is small enough to do this reasonably, of course.

  4. saschanaz commented on Feb 12, 2016

    @saschanaz
    ContributorAuthor

    That will be great, but the type of IInputStream in my example has a reference to Buffer, Buffer has one to MemoryBuffer, MemoryBuffer has one to IMemoryBufferReference, etc... Maybe one will not need all of them but maybe others will.

  5. RyanCavanaugh commented on Jun 23, 2021

    @RyanCavanaugh
    Member

    Tracking at #31894 now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs ProposalThis issue needs a plan that clarifies the finer details of how it could be implemented.SuggestionAn idea for TypeScript

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions