| Icon | Meaning |
|---|---|
| ✅ | Implemented |
| 🔲 | Planned |
| 〰️ | Deprioritized - open an issue if you want this. |
| ❌ | Will not be implemented - nonstandard or deprecated API |
| ⬇️ | Will not be implemented - nonidiomatic TS or could cause performance issues |
| Progress | Feature | Notes |
|---|---|---|
| 〰️ | arguments | I can do this, but does anyone want it? |
| 🔲 | async | Oh boy |
| ✅ | break | Still need to do labelled breaks |
| 🔲 | case | |
| 〰️ | catch | See exception handling section below |
| 🔲 | class | See class section below |
| ✅ | const | |
| ✅ | continue | Still need to do labelled continues |
| 〰️ | debugger | Hah! One day... one day... |
| 🔲 | default | |
| 〰️ | delete | not sure if I want to support this for arrays |
| 🔲 | do | |
| ✅ | else | |
| 🔲 | export | |
| 🔲 | extends | See class section below |
| 🔲 | finally | See exception handling section below |
| ✅ | for | |
| ✅ | function | See function section below |
| ✅ | if | |
| 🔲 | import | |
| 〰️ | in | will not support for...in, except maybe on objects. |
| 🔲 | instanceof | |
| 🔲 | new | |
| ✅ | return | |
| 🔲 | super | |
| 🔲 | switch | |
| ✅ | this | |
| 〰️ | throw | |
| 〰️ | try | |
| 🔲 | typeof | |
| ❌ | var | Use let or const |
| 〰️ | void | seems unnecessary, but not hard to add |
| 🔲 | while | |
| ❌ | with | Will definitely never add this. |
| 🔲 | yield | Oh boy. |
| Progress | Feature | Notes |
|---|---|---|
| 🔲 | Implementation | Got some basic stuff in place, but there's still a lot of details to be worked out. |
| 🔲 | Constructors | |
| 🔲 | instanceof checks | |
| 🔲 | Properties | |
| 🔲 | Methods | |
| 🔲 | super | |
| 🔲 | Static Methods | |
| 🔲 | Static Properties | |
| 🔲 | Private modifier | There isn't much to do here since TS will enforce this. |
| 🔲 | Getters / Setters | |
| 🔲 | Inheritance | Oh boy |
| Progress | Feature | Notes |
|---|---|---|
| ✅ | Function declarations | |
| ✅ | Method declarations | |
| ✅ | Arrow functions | |
| 〰️ | Function expressions | Use arrow functions - it's difficult to ensure this is typed correctly. |
| ✅ | Arrow functions | |
| 🔲 | Closures | |
| 🔲 | Default arguments | |
| 🔲 | Optional arguments | |
| ⬇️ | Function.prototype.apply | Might be possible, need to investigate (https://github.com/Microsoft/TypeScript/pull/27028)[this PR] |
| ⬇️ | Function.prototype.bind | Might be possible, need to investigate (https://github.com/Microsoft/TypeScript/pull/27028)[this PR] |
| ⬇️ | Function.prototype.call | Might be possible, need to investigate (https://github.com/Microsoft/TypeScript/pull/27028)[this PR] |
| Progress | Feature | Notes |
|---|---|---|
| 🔲 | Rudimentary module loading and bundling | |
| ✅ | Import function declarations | |
| ✅ | Import class declarations | there are no real classes yet but i'm prepared |
| 🔲 | Absolute paths | |
| 🔲 | Relative paths |
| Progress | Feature | Notes |
|---|---|---|
| ✅ | String literals | |
| ✅ | String equality with === |
|
| 🔲 | Concatenate strings with + |
|
| ✅ | String.fromCharCode() | |
| 〰️ | String.fromCodePoint() | |
| ❌ | String.prototype.anchor() | deprecated API |
| ❌ | String.prototype.big() | deprecated API |
| ❌ | String.prototype.blink() | deprecated API |
| ❌ | String.prototype.bold() | deprecated API |
| ✅ | String.prototype.charAt() | |
| ✅ | String.prototype.charCodeAt() | |
| 〰️ | String.prototype.codePointAt() | |
| ✅ | String.prototype.concat() | need to handle varags |
| ✅ | String.prototype.endsWith() | |
| ❌ | String.prototype.fixed() | deprecated API |
| ❌ | String.prototype.fontcolor() | deprecated API |
| ❌ | String.prototype.fontsize() | deprecated API |
| ✅ | String.prototype.includes() | |
| ✅ | String.prototype.indexOf() | |
| ❌ | String.prototype.italics() | deprecated API |
| ✅ | String.prototype.lastIndexOf() | |
| ❌ | String.prototype.link() | deprecated API |
| 〰️ | String.prototype.localeCompare() | |
| 〰️ | String.prototype.match() | |
| 〰️ | String.prototype.normalize() | |
| 🔲 | String.prototype.padEnd() | |
| 🔲 | String.prototype.padStart() | |
| ❌ | String.prototype.quote() | deprecated API |
| ✅ | String.prototype.repeat() | |
| 🔲 | String.prototype.replace() | |
| 🔲 | String.prototype.search() | |
| 🔲 | String.prototype.slice() | |
| ❌ | String.prototype.small() | deprecated API |
| 🔲 | String.prototype.split() | |
| 🔲 | String.prototype.startsWith() | |
| ❌ | String.prototype.strike() | deprecated API |
| ❌ | String.prototype.sub() | deprecated API |
| ❌ | String.prototype.substr() | deprecated API |
| 🔲 | String.prototype.substring() | |
| ❌ | String.prototype.sup() | deprecated API |
| 〰️ | String.prototype.toLocaleLowerCase() | |
| 〰️ | String.prototype.toLocaleUpperCase() | |
| 🔲 | String.prototype.toLowerCase() | |
| 〰️ | String.prototype.toSource() | |
| 🔲 | String.prototype.toString() | |
| 🔲 | String.prototype.toUpperCase() | |
| 🔲 | String.prototype.trim() | |
| 🔲 | String.prototype.trimEnd() | |
| 🔲 | String.prototype.trimStart() | |
| 🔲 | String.prototype.valueOf() | |
| 🔲 | String.prototype@@iterator | |
| 〰️ | String.raw() |
Properties
| Progress | Feature | Notes |
|---|---|---|
| ✅ | Array.length | |
| ⬇️ | Array.prototype | |
| ⬇️ | Array.prototype[@@unscopables] | We will not support with |
Methods
| Progress | Feature | Notes |
|---|---|---|
| 🔲 | Array.from() | |
| 🔲 | Array.isArray() | |
| ❌ | Array.observe() | deprecated API |
| 🔲 | Array.of() | |
| ✅ | Array.prototype.concat() | Needs var-arg support |
| 🔲 | Array.prototype.copyWithin() | |
| 🔲 | Array.prototype.entries() | |
| 🔲 | Array.prototype.every() | |
| 🔲 | Array.prototype.fill() | |
| 🔲 | Array.prototype.filter() | |
| 🔲 | Array.prototype.find() | |
| 🔲 | Array.prototype.findIndex() | |
| 🔲 | Array.prototype.flat() | |
| 🔲 | Array.prototype.flatMap() | |
| 🔲 | Array.prototype.forEach() | |
| 🔲 | Array.prototype.includes() | |
| ✅ | Array.prototype.indexOf() | |
| 🔲 | Array.prototype.join() | |
| 🔲 | Array.prototype.keys() | |
| 🔲 | Array.prototype.lastIndexOf() | |
| ✅ | Array.prototype.map() | needs to pass in index and current value |
| 🔲 | Array.prototype.pop() | |
| ✅ | Array.prototype.push() | |
| 🔲 | Array.prototype.reduce() | |
| 🔲 | Array.prototype.reduceRight() | |
| ✅ | Array.prototype.reverse() | |
| 🔲 | Array.prototype.shift() | |
| 🔲 | Array.prototype.slice() | |
| 🔲 | Array.prototype.some() | |
| 🔲 | Array.prototype.sort() | |
| 🔲 | Array.prototype.splice() | |
| 🔲 | Array.prototype.toLocaleString() | |
| 🔲 | Array.prototype.toSource() | |
| 🔲 | Array.prototype.toString() | |
| 🔲 | Array.prototype.unshift() | |
| 🔲 | Array.prototype.values() | |
| 🔲 | Array.prototype@@iterator | |
| ❌ | Array.unobserve() | deprecated API |
| 🔲 | get Array[@@species] |