microsoft / microsoft/TypeScript
Proposal: Spread Interface Operator
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 111k
- Forks
- 14.3k
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 132
Description
Suggestion
When we want to extend a interface we use the "extends" keyword. So for example:
interface Foo {
keyA: string,
keyB: number,
}
interface ExtendsFoo extends Foo {
keyC: any
}
My idea is to define the same interface ExtendsFoo but using what I would call the Spread Interface Operator.
The code mentioned above could be rewritten as:
interface Foo {
keyA: string,
keyB: number,
}
interface ExtendsFoo {
...Foo,
keyC: any
}
I think this could be another way of expressing types that reminds spread operator syntax in Javascript.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The proposal concerns TypeScript interface inheritance and JavaScript spread syntax. Start by reviewing how existing interface and extends syntax is specified and parsed, then determine the design implications of allowing spread members in interfaces. Done would require an accepted language design plus implementation and conformance coverage.
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
- 25/100