export type SimpleType = { Property1 : string ; Property2 : string ; } ; export type SimpleTypeParameters = keyof SimpleType ; export type GenericType < T > = { Property : T ; } ; /**
 * General comment about UnionType type.
 */ export type UnionType = string | undefined ; deprecated beta export type UnionTypeWithLiterals = { Property1 : string ; } | { Property2 : number ; } ; export type IntersectionType = SimpleType & GenericType < number > ; export type IntersectionTypeWithLiterals = { Property1 : string ; } & { Property2 : number ; } ; export type Easing = "ease-in" | "ease-out" | "ease-in-out" ; export type Numbers = 1 | 2 | 3 | 4 | 5 | 6 ; export type Name = string ; export type NameResolver = ( ) => string ; export type NameOrResolver = Name | NameResolver ; export type Tree < T > = { value : T ; left : Tree < T > ; right : Tree < T > ; } ; export type LinkedList < T > = T & { next : LinkedList < T > ; } ; export type Negative = void | never ; export type IndexType = { [ key ] : number ; } ; export type SelectedNumbers = Readonly < Numbers > ; export type PartialSimpleType = Partial < SimpleType > ; export type Proxy < T > = { get ( ) : T ; set ( value ) : void ; } ; export type TypeWithMultipleTypeParameters < T , V , U > = { PropertyT : T ; PropertyV : V ; PropertyU : U ; } ; export type Readonly < T > = { readonly [ P in keyof T ] : T [ P ] ; } ; export type Partial < T > = { [ P in keyof T ] ? : T [ P ] ; } ; export type Nullable < T > = { [ P in keyof T ] : T [ P ] | null ; } ; export type Proxify < T > = { [ P in keyof T ] : Proxy < T [ P ] > ; } ; export type Pick < T , K extends keyof T > = { [ P in K ] : T [ P ] ; } ; export type Record < K extends string , T > = { [ P in K ] : T ; } ; export interface ExtendedBar extends FooInterface < number > , Boo { OtherStuff : string [ ] ; } export interface FooInterface < TType > { Name : string ; Surname : string ; Type : TType ; } export interface Boo { Boos : string [ ] ; } export interface AnotherInterface { < TValue > ( param1 , param2 ) : boolean ; } export interface MyConstraintType { myProperty : string ; } export interface MyDefaultType extends MyConstraintType { anotherProperty : number ; } export interface ObjectsInterface { objectOne : Object ; objectTwo : Object ; } export interface InterfaceWithCall { < T > ( ) : { someProperty : T ; } ; } export interface InterfaceWithConstraintType extends Dictionary < string > { someProperty : string ; } export interface InterfaceWithMethod < T > { someMethodOne ( ) : T ; someMethodTwo < TReturn > ( ) : TReturn ; } export interface Dictionary < TValue > { new ( ) : Dictionary < TValue > ; [ key ] : TValue ; } export interface MethodsInterface { someMethod < T > ( ) : string ; < TValue > ( arg ) : void ; } beta deprecated export interface MonsterInterface < TValue extends Object = { } > extends ObjectsInterface { new < T > ( ) : MonsterInterface < T > ; new ( someParameter ) : string ; readonly [ key ] : TValue ; < T > ( ) : { someProperty : T ; } ; < T > ( key ? ) : { someProperty : T ; } ; < T > ( key ) : { someProperty : T ; } ; readonly objectOne : TValue ; objectTwo : TValue ; } export interface SomeInterface { [ key ] : string | number ; [ key ] : string ; } export interface StringsDictionary { [ key ] : string ; } export interface MyInterface { MyPropertyOne : string ; MyPropertyTwo : Object ; MyPropertyThree : number ; } /**
 * Simple list.
 */ export enum EnumList { /**
     * Description for First option.
     */ FirstOption , /**
     * Description for Second option.
     */ SecondOption , /**
     * Description for Third option.
     */ ThirdOption } /**
 * List with number values with no punctuation at the end of description
 */ export enum EnumListWithNumberValues { FirstOption = 1 , SecondOption = 2 , ThirdOption = 3 } beta deprecated export enum EnumListWithStringValues { FirstOption = "first" , SecondOption = "second" , ThirdOption = "third" } export const SampleConst = "sample-const" ; export const ArrowFunctionConst = ( a ) => `return-${ a }` ; export let letString = "let" ; export var varString = "var" ; export var functionVar = function ( ) : string { return "functionVar" ; } ; export const ObjectLiteralConst = { Property : "value" } ; export const SymbolConst = Symbol ( "Some description" ) ; export const MapConst = new Map < string , string > ( ) ; export const AnyMap = new Map ( ) ; export const RegexConst = /^[A-Za-z]+$/ ; export const NumberLiteralConst = 120 ; export const PredefinedArray = [ 1 , 2 ] ; export const Tuple = [ 10 , "ten" ] ; export const TrueConst = true ; export const BooleanConst = false ; export const FooConst = { Boos : [ ] , Name : "Name" , OtherStuff : [ ] , Surname : "Surname" , Type : 12 } ; export let FooLet = { Boos : [ ] } ; export const GetFooConst = GetFoo ; export const NameResolverConst = ( ) => "resolved" ; export const StringOrNull = null ; export const FunctionConst = ( ) => ( ) => "string" ; export class Foo { public HandleMessage ( message ) { return message ; } } export class World { } export class Earth { } export function AnotherFoo < T extends Object > ( parameter1 , parameter2 ) { return "bar" ; } export async function GetFoo ( ) { return ; } export function FunctionWithOneParameter ( parameter ) { return ; } export function FunctionWithNoParameters ( ) { return ; } export function FunctionWithMultipleParameters ( parameter1 , parameter2 ) { return ; } beta deprecated export function Bar ( parameter1 , parameter2 ) { return "bar" ; } template T template P param parameter1 param parameter2 returns export function FunctionWithMultipleTypeParameters < T extends Object , P > ( parameter1 , parameter2 ) { return "bar" ; } /**
 * Some general comment about Function with type parameter default function.
 */ export function FunctionWithTypeParameterDefault < T extends Object = { } > ( parameter1 , parameter2 ) { return "bar" ; } /**
 * Some general comment about AnotherBar function.
 */ export function FunctionWithTypeParameterConstraint < T extends Object > ( parameter1 , parameter2 ) { return "bar" ; } export function FunctionWithoutReturnType < T extends T [ ] > ( parameter1 , parameter2 ) { return "bar" ; } export function FunctionWithGenericReturnType ( ) { return [ ] ; } export function FunctionWithPrimitiveReturnType ( ) { return true ; } export function FunctionWithUnionReturnType ( ) { return "nothing" ; } export function FunctionWithIntersectionReturnType ( ) { return { } ; } /**
 * Function with TypeParameter as TypeLiteral.
 */ export function MyFunction < T extends { myProperty : string ; myPropertyTwo ? : number ; } = { myProperty : string ; } > ( ) { return { myProperty : "sampleString" } as T ; } export function FunctionWithInitializedNumberParameter ( someParameter = 12 ) { return someParameter ; } export function FunctionWithInitializedStringParameter ( someParameter = "12" ) { return someParameter ; }