>
> I know from the folks talking about types earlier, we're definitely
> interested in other teams adopting some TypeScript comments in their own
> areas of the codebase, so we can gather more feedback. If anyone is
> interested in experimenting, I'd be happy to help guide some initial setup.
>
I'd like to explore adding this to the Normandy code
(toolkit/components/normandy). We already often annotate types via JSDoc
comments, though nothing so strict as what Typescript would want. I expect
the code would be pretty amicable to being strongly typed as well.

On Tue, Nov 12, 2019 at 1:33 PM Greg Tatum <gta...@mozilla.com> wrote:

> I was getting ready to write up some updates, but was waiting for some of
> my most recent type work to land. I'll go ahead since there is interest. So
> far the experience of working in devtools/client/performance-new [0] has
> been really positive. It's a bit challenging getting the TypeScript module
> system to work with our variants of loaders, but I've made progress to get
> it working in at least one our smaller folder. It will take a broader
> effort to really teach TypeScript about Gecko, but it seems doable, and
> seems like something that could be done as an incremental improvement.
>
> The profiler front-end (which is on GitHub, and is profiler.firefox.com)
> uses a different type system (Flow), and we've really leaned in hard to it
> to trust that our code is working as expected using the type system. We've
> been using Flow there for nearly 3 years. So far, TypeScript seems to be
> able to do most all of the things that we've been relying on in
> profiler.firefox.com, but inside of Gecko. I'm feeling a lot more
> confident making changes to the code, and being able to understand the
> interfaces I'm consuming while writing and reading code. In the next month
> or two we will be heavily refactoring the profiler popup code, so hopefully
> the types will help with that work, and let us move quicker.
>
> Here are things I've gotten types working with:
>
>  * Profiler popup panel
>  * React Component (landing now)
>  * A frame script, and its environment
>  * JSM files
>  * Test files (only locally so far)
>  * DevTools module loading system
>  * Somewhat hacky with Chrome.import, and Cc["module"] style imports.
>
> So far I'm treating the rest of Gecko like it's a foreign world that I
> can't touch. However, it should be possible to make the types work with
> more "modules" in the rest of the codebase. For instance, I could see
> teaching IDL files to spit out TypeScript declaration files and automating
> some of this process.
>
> As for the test runner, right now it's a simple command to run from the
> terminal [1], but we could hook it into a mach command, and integrate it
> with our try services. I did an experiment earlier to demonstrate that this
> was feasible [2]. Right now, I'm mostly relying on in-editor hints, as VS
> Code loads the config files by default, and provides in-editor hints [3]
>
> I know from the folks talking about types earlier, we're definitely
> interested in other teams adopting some TypeScript comments in their own
> areas of the codebase, so we can gather more feedback. If anyone is
> interested in experimenting, I'd be happy to help guide some initial setup.
>
> Next, I believe we are planning on continuing to experiment with real code
> in tree, and evaluate what the next steps look like, e.g. official mach
> runners, and try server integration.
>
> [0]:
> https://searchfox.org/mozilla-central/source/devtools/client/performance-new
> [1]:
> https://github.com/mozilla/gecko-dev/blob/6566d92dd46417a2f57e75c515135ebe84c9cef5/devtools/client/performance-new/typescript.md
> [2]:
> https://treeherder.mozilla.org/#/jobs?repo=try&revision=201f27967c8c6f26c6a4430fb1307478769762f7&searchStr=devtools&selectedJob=266879166
> [3]: https://giphy.com/gifs/VJkwziVsCYGvOGNsv0
>
>
>
>
>
>
>
> On Tue, Nov 12, 2019 at 2:13 PM Andreas Tolfsen <a...@sny.no> wrote:
>
>> +gtatum
>>
>> Also sprach Dave Townsend:
>>
>> > A first experiment towards understanding this has just landed (
>> > https://hg.mozilla.org/integration/autoland/rev/1dd081553a3a).
>> Specifically
>> > Greg Tatum has added TypeScript <https://www.typescriptlang.org/> type
>> > annotations and configuration to the JavaScript code in the
>> > devtools/client/performance-new directory.
>>
>> As mconley said, this really is great work!  Any step we can take
>> to make using JavaScript safer should be applauded.
>>
>> We’d be interested in providing stronger type hints in the new
>> remote protocol in development under remote/, as I understand
>> adding types retroactively to existing code can be challenging.
>>
>> > For the time being the perf tools team will just be checking the types
>> > locally before committing. This will give us an idea of the benefits on
>> > real in-tree code without any impact outside of the team.
>>
>> Has any progress been made since to include this in our lint checks?
>>
>> If not, what instructions do I need for running the manual checks?
>>
>> _______________________________________________
> firefox-dev mailing list
> firefox-...@mozilla.org
> https://mail.mozilla.org/listinfo/firefox-dev
>
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to