microsoft / microsoft/TypeScript

A flag to replace removed syntax with blank space

Open
#61,410 0 comments 15 reactions 0 assignees View on GitHub
Awaiting More Feedback Suggestion
Dominant language
Go
Stars
111k
Forks
14.3k
PR merge metrics
PR metrics pending

Description

### 🔍 Search Terms

Blank space
ErasableSyntax
Node.js Strip Types
Type Stripping

### ✅ Viability Checklist

- [x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
- [x] This wouldn't change the runtime behavior of existing JavaScript code
- [x] This could be implemented without emitting different JS based on the types of the expressions
- [x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
- [x] This isn't a request to add a new utility type: https://github.com/microsoft/TypeScript/wiki/No-New-Utility-Types
- [x] This feature would agree with the rest of our Design Goals: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals

### ⭐ Suggestion

A new flag to replace removed syntax during transpilation with blank space. Similarly to http://github.com/bloomberg/ts-blank-space and https://swc.rs/docs/references/wasm-typescript used in Node.js. This would remove the need of sourcemaps.
It can only be used in conjuction with --erasableSyntaxOnly

### 📃 Motivating Example

Example:
```
const foo: string = "Hello World";
```

becomes:

```
const foo = "Hello World";
```

### 💻 Use Cases

1. What do you want to use this for?
Remove the need of sourcemaps after transpilation.
3. What shortcomings exist with current approaches?
None other than only a subset of syntax defined by an existing flag can be stripped.
4. What workarounds are you using in the meantime?
swc and tsblankspace

Contributor guide

Open the contributing guide

Research direction

The issue names no repository files or tests. Start by tracing the existing --erasableSyntaxOnly option through the compiler and compare the requested blank-space output with the cited swc and ts-blank-space approaches. Done means a new compatible flag replaces removed syntax with spaces and is restricted to erasable syntax.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.