Love this idea. Typescript would be immensely helpful with Echart's
declarative approach. Not sure how you would like to manage the builds, but
to get started, this library may be helpful:
https://github.com/jaredpalmer/tsdx.

Thanks,

Jonathan

On Tue, Oct 29, 2019 at 3:08 AM Yi Shen <shenyi....@gmail.com> wrote:

> Hi,
>
> It's a very big topic and may sound terrifying.
>
> I started this discussion because I'm using TypeScript a lot recently. And
> realized a strong typing system really helps a lot when writing the code.
> So I'm thinking about if we can refactor our code with TypeScript.
>
> Of course, there will be a lot of work for the whole codebase. So I
> suggested separating the process into 4 steps, and hopefully, this can be
> done progressively:
>
> 1. The easiest part, create a new branch and renaming all the files from
> .js to .ts. If everything goes well, we can use TS compiler to compile
> these files already.
> 2. Add typings for our fundamental modules. Like `List`, `Graph`,
> `graphic`, `View`, `Model` etc...These modules will be used in almost all
> components.
> 3. We can add typings in our components, which has the most of the logic
> code.
> 4. Adjust our code structure to be more TypeScript.
>
> Personally speaking, the first 3 steps the most needed. It looks to be
> easy, but during the process of adding typings. We may need to rewrite a
> lot of code to meet the purpose of strong typing.
>
> Here are some pros and cons of changing the code to TypeScript I can think
> of:
>
> Pros are mostly come from strong typing:
> 1. We can avoid bugs like argument mismatching [1], variable naming typo
> Bugs like these easily happen when we are refactoring the code. I can find
> a lot of commits about fixing the typos [2].
> 2. Developers know what the interfaces look like of each module, which
> makes it easier for them to contribute.
> 3. VSCode has a really wonderful intelligence on the TypeScript. I enjoy it
> a lot when I'm writing TypeScript.
>
> Cons:
> 1. Honestly speaking, it's a lot of work. And it's hard to keep the
> TypeScript branch updated with the master branch before merging.
> 2. Developers may need to learn TypeScript. But I think it's not a big deal
> comparing to learning how echarts works.
>
> At last, as I said first, the word refactoring may sound terrifying. But I
> believe it worth it. I hope we can all enjoy writing our code with the help
> of excellent intelligence.
>
> Regards
>
> [1] https://github.com/ecomfe/zrender/pull/480
> [2] https://github.com/apache/incubator-echarts/search?q=typo&type=Commits
>
> --
> Yi Shen
> Apache ECharts(incubating) PPMC
>

Reply via email to