- Comments
- Int literals
- Float literals
- String/Template literals
- Boolean literals
- Null/undefined literals
- Regex literals
- Prefix/postfix operators
- Binary operators
- Ternary expressions
-
var
/let
/const
-
if
/else if
/else
-
switch
- While loops
- Do loops
- C-style for loops
- For each loops
-
throw
-
try
/catch
/finally
- Functions
-
return
- Fake 'this' parameter
- Check all code paths return correctly
- Inferred return types
- Arrow functions
- Variadic functions
- As lambda expressions
-
- Function calls
- Unions
- Tuples
-
unknown
type -
never
type - Arrays
- Array accesses
- Array<> generic
- Type aliases
- Interfaces
- Inline with object literal syntax/type aliases
-
interface
syntax -
extends
for interfaces - Construct signatures for interfaces
- Short function syntax
- Object literals
- Object member accesses
- Enums
- Const enums
- Ambient enums
-
delete
- Classes
-
new
- Member variables
- Member functions
- Property access with '.'
- Property access with '[]'
-
readonly
-
static
-
public
/protected
/private
- ECMAscript private fields with '#'
- Parameter properties
-
constructor
-
destructor
- Accessors with
get
/set
-
extends
for classes -
abstract class
-
implements
-
- Generics
- Recursive types
- Modules/
import
/export
-
declare
-
namespace
-
async
/await
- Type casting
- Type predicates
- Object destructuring
- Generator functions/
yield
- Decorators
- Symbol/unique symbol
- JSX
- Read code from file
- Read code from stdin
- Read
tsconfig
files - GCC style command line interface
- Strict flag
-
strictNullChecks