website icon indicating copy to clipboard operation
website copied to clipboard

ER: Investigate use of TypeScript

Open roslynwythe opened this issue 1 year ago • 4 comments

Dependencies

  • [ ] homepage launch
  • [ ] research team doing research on usage of js vs typescript in cs grads and bootcamps

Emergent Requirement - Problem

We should explore the possibility of converting our JavaScript code to TypeScript

  • TypeScript is a strict syntactical superset of JavaScript and adds optional static typing and class-based object-oriented programming features to the language.
  • TypeScript allows developers to write more maintainable and scalable code by catching type-related errors at compile-time instead of runtime
  • It also provides better IDE support, code completion, and refactoring tools, making development more efficient.

Issue you discovered this emergent requirement in

Date discovered

Did you have to do something temporarily

  • [ ] YES
  • [x] NO

Who was involved

@roslynwythe

What happens if this is not addressed

We won't benefit from the code quality and development improvements offered by TypeScript and won't gain experience with the language, which continues to gain adoption.

Resources

typescriptlang.org TypeScript adoption trend

Recommended Action Items

  • [ ] Make a new issue
  • [x] Discuss with team
  • [ ] Let a Team Lead know

Potential solutions [draft]

Items to consider in the analysis:

  • impact on folder structure
  • impact on build (GitHub and Docker)
  • impact on VS Code configuration
  • frontend code vs. backend code (used in the context of GHA)

roslynwythe avatar May 02 '24 07:05 roslynwythe

Hi @roslynwythe.

Please don't forget to add the proper labels to this issue. Currently, the labels for the following are missing:

  • Complexity, Role, Feature

NOTE: Please ignore this comment if you do not have 'write' access to this directory.

To add a label, take a look at Github's documentation here.

Also, don't forget to remove the "missing labels" afterwards. To remove a label, the process is similar to adding a label, but you select a currently added label to remove it.

After the proper labels are added, the merge team will review the issue and add a "Ready for Prioritization" label once it is ready for prioritization.

Additional Resources:

github-actions[bot] avatar May 02 '24 07:05 github-actions[bot]

If we do decide to change to TypeScript, it's a good time to also Adopting a coding style standard/guideline #6807

tony1ee avatar May 02 '24 08:05 tony1ee

@roslynwythe @tony1ee I have added this to our next dev/pm agenda.

ExperimentsInHonesty avatar May 03 '24 22:05 ExperimentsInHonesty

Moving to icebox and adding dependencies

ExperimentsInHonesty avatar May 07 '24 00:05 ExperimentsInHonesty