max-line-length
in Organize Imports refactormissing
and undefined
as const
on enum valuesskipLibCheck
for skipping only "external" filesObject.keys
ES5 input typeswitch
exhaustiveness is only for return
statements themselveslet a!: number;
and Daniel will log bug on bad error message theremax-line-length
in Organize Imports refactormissing
and undefined
in
operator doesn't care about observing an undefined
Select<T, K, V>
is easy to write! (let's see if that's true...)// One-time helper, curryable
type Select<T, K extends keyof T, V> = T extends Record<K, V> ? T : never;
// Type annotation
const fooLogic = (foo: Select<Action, "type", "FOO">["foo"]) => { // 馃憤
return {/* ... */}
}
AClass
?AClass
through either name, then this is just a bug report of us following import
aliases more aggressivelyinclude
list? Or the files
list?exclude
?Pick2
: type Pick2<T> = T extends T ? Pick<T> : never
noEmit
+ babel
(turn on isolatedModules
)incremental
noResolve
is on?as const
on enum valuesE.P
where E
is a literal enumObject.keys
ES5 input typei am sorry for being a pain in one place, but how come ~these~ first 3 of these and some more features/problems are even considered? it's like the team is out of ideas what to do next
there are 馃憤 of 250+ problems waiting from the dawn of time, and being ignored for years:
https://github.com/Microsoft/TypeScript/issues?q=sort%3Areactions-%2B1-desc
@aleksey-bykov Probably some context-setting is in order. This meeting is primarily devoted to getting yes-or-no decisions made on suggestions which have fairly clear outcomes. In other words, it's effectively a "shortest job first" throughput-maximizing endeavor where we try to pay down some of the massive triage debt we have while also getting as many suggestions accepted or declined in a short turnaround time. If a dozen people express an identifiable need for a commandline flag to print the errors in reverse order, we should be able to make that yes-or-no decision so they can either send a PR or make other arrangements.
By its nature, this means we're looking at simple commandline flags, tweaks to definitions, highly-scoped behavioral changes, or "Is this actually a bug?" type issues.
For larger high-impact features (HKTs, variadics, nominal types, negated types, etc) we are generally choosing these based on ecosystem need and concerns about implementation complexity. I can't take Associated Types to a room with three people, getting a consensus "yes", and be shipping it later that week - all of these larger things start with a clearly identifiable gap in the language, get discussed at a high level for weeks if not months, and eventually land as a keystone feature in a release.
I have over a thousand pending suggestions to sort out here. In a particularly good week when all the key people are present, we can get through 20-30. Any sort order is necessarily going to give some suggestions the short end of the stick, which sucks, but this meeting literally was created to just get the freakin' number down and its agenda reflects that. Hopefully that clarifies why you see small-ball level suggestions in these notes - it's not because we're eschewing popular stuff, it's that we're trying to get through a bunch of easy decisions all at once.
so you are saying it's not a planning meeting and yet, some requests get approved for implementation, i am questioning the rationale of the original selection, some requests are created a day ago, do not have any comments let along any thumbs up, and yet they are brought for discussion with a chance of being approved, i just dont get this part
It is a planning meeting. It is simply not the planning meeting where All Decisions Get Made, and not the planning meeting where any of the issues you linked to could be meaningfully addressed.
I'm facing the task here of picking 15-30 items from a list of 1,500. My algorithm here is intentionally varied; some weeks I sort by oldest, some weeks most upvotes, some weeks newest, some weeks we work off a backlog of recently-curated things. If you're trying to make an agenda where everyone stays engaged and is making good decisions, it's necessary to keep a mix of things in there.
Sometimes a suggestion comes in and I say, "This would be easy to make a quick decision on", and it goes in the queue. #30690, for example, the first thing we said in the meeting was "This seems like an oversight that it wasn't allowed in the first place".
Getting flak for how we choose to handle this enormous backlog of suggestions is draining and I'm trying to figure out what you want to get out of this conversation. If you want to pitch a list of 15-30 "In Discussion"-tagged items that you think we can make yes-or-no decisions on in five minutes or less each, I will no joke use that as the agenda for the next meeting. Offer is open to anyone; if you want to give us theme weeks or something (Only Commandline Flags! Only C# Keywords!) that'd be fun.
ok, i guess you know what you are doing, thank you for write up
Thank you so much for taking the time to set the context @RyanCavanaugh - the work that you have been doing to make the development process transparent is greatly appreciated (and one of the reasons we're using TypeScript over Flow)
Most helpful comment
It is a planning meeting. It is simply not the planning meeting where All Decisions Get Made, and not the planning meeting where any of the issues you linked to could be meaningfully addressed.
I'm facing the task here of picking 15-30 items from a list of 1,500. My algorithm here is intentionally varied; some weeks I sort by oldest, some weeks most upvotes, some weeks newest, some weeks we work off a backlog of recently-curated things. If you're trying to make an agenda where everyone stays engaged and is making good decisions, it's necessary to keep a mix of things in there.
Sometimes a suggestion comes in and I say, "This would be easy to make a quick decision on", and it goes in the queue. #30690, for example, the first thing we said in the meeting was "This seems like an oversight that it wasn't allowed in the first place".
Getting flak for how we choose to handle this enormous backlog of suggestions is draining and I'm trying to figure out what you want to get out of this conversation. If you want to pitch a list of 15-30 "In Discussion"-tagged items that you think we can make yes-or-no decisions on in five minutes or less each, I will no joke use that as the agenda for the next meeting. Offer is open to anyone; if you want to give us theme weeks or something (Only Commandline Flags! Only C# Keywords!) that'd be fun.