Skip to content

Design Meeting Notes, 4/28/2021 #43871

Closed
Closed
@DanielRosenwasser

Description

@DanielRosenwasser

override on Parameter Properties

#43831

  • No reason not to do this.
  • Stronger than that - would probably block people from otherwise adopting a feature that they're the most likely to use. Would otherwise be blocking-ish.

abstract and override Ordering

#43829

{ a: number } -> Partial<Omit, "a"> & A

#43846

type Foo = {
    x: string,
    y: number,
};

declare let x = { y: "hello" };
declare let y: Partial<Omit<Foo, "y">> & { y: string } = x
  • Assignment doesn't work.
  • Unclear what rule would make this work.

@deprecate Annex B Methods

#43709
#43710
#43796

  • Let's do this.

Import string names from Modules

tc39/ecma262#2154

import { "😊" as yay } from "...";

yay();

export { yay as "🦈" };
  • ESBuild, Babel, V8 all support this.

  • New module target? Yes.

    • ESNext
    • ES2022? Depends when the PR gets merged.
  • Start small: ESNext, maybe CommonJS?

  • This sort of thing could also allow namespace syntax.

    • Don't do that just yet.
  • What about import types?

  • In some cases, these declarations become un-nameable.

    // @filename: bradsad.ts
    
    class Foo {
    }
    
    export { Foo as "Foo Bar" };
    
    // @filename: yadda.ts
    
    let x: import("./bradsad")["Foo Bar"] // uh oh
  • Some declarations won't be accessible with import() types.

    • That's fine initially.
  • Schedule the base feature for 4.4.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Design NotesNotes from our design meetings

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions