TypeScript Language Specification
TypeScript
Language Specification Version 1.8 January, 2016
Microsoft is making this Specification available under the Open Web Foundation Final Specification Agreement Version 1.0 ("OWF 1.0") as of October 1, 2012. The OWF 1.0 is available at .
TypeScript is a trademark of Microsoft Corporation.
Table of Contents
1 Introduction...................................................................................................................................................................................1 1.1 Ambient Declarations.....................................................................................................................................................3 1.2 Function Types ..................................................................................................................................................................3 1.3 Object Types ......................................................................................................................................................................4 1.4 Structural Subtyping .......................................................................................................................................................6 1.5 Contextual Typing............................................................................................................................................................7 1.6 Classes ..................................................................................................................................................................................8 1.7 Enum Types ..................................................................................................................................................................... 10 1.8 Overloading on String Parameters......................................................................................................................... 12 1.9 Generic Types and Functions ................................................................................................................................... 12 1.10 Namespaces .................................................................................................................................................................... 14 1.11 Modules ............................................................................................................................................................................ 16
2 Basic Concepts .......................................................................................................................................................................... 17 2.1 Grammar Conventions ................................................................................................................................................ 17 2.2 Names................................................................................................................................................................................ 17 2.2.1 Reserved Words........................................................................................................................................................ 18 2.2.2 Property Names........................................................................................................................................................ 18 2.2.3 Computed Property Names ................................................................................................................................. 19 2.3 Declarations..................................................................................................................................................................... 19 2.4 Scopes ............................................................................................................................................................................... 22
3 Types ............................................................................................................................................................................................. 25 3.1 The Any Type .................................................................................................................................................................. 26 3.2 Primitive Types ............................................................................................................................................................... 26 3.2.1 The Number Type .................................................................................................................................................... 26 3.2.2 The Boolean Type .................................................................................................................................................... 27 3.2.3 The String Type......................................................................................................................................................... 27 3.2.4 The Symbol Type...................................................................................................................................................... 27 3.2.5 The Void Type............................................................................................................................................................ 28 3.2.6 The Null Type............................................................................................................................................................. 28 3.2.7 The Undefined Type................................................................................................................................................ 29 3.2.8 Enum Types ................................................................................................................................................................ 29 3.2.9 String Literal Types .................................................................................................................................................. 29 3.3 Object Types ................................................................................................................................................................... 29 3.3.1 Named Type References ....................................................................................................................................... 30 3.3.2 Array Types ................................................................................................................................................................. 30 3.3.3 Tuple Types ................................................................................................................................................................ 30 3.3.4 Function Types .......................................................................................................................................................... 31 3.3.5 Constructor Types.................................................................................................................................................... 31
i
3.3.6 Members ..................................................................................................................................................................... 31 3.4 Union Types..................................................................................................................................................................... 32 3.5 Intersection Types......................................................................................................................................................... 34 3.6 Type Parameters ............................................................................................................................................................ 35
3.6.1 Type Parameter Lists............................................................................................................................................... 35 3.6.2 Type Argument Lists ............................................................................................................................................... 36 3.6.3 This-types .................................................................................................................................................................... 37 3.7 Named Types.................................................................................................................................................................. 38 3.8 Specifying Types............................................................................................................................................................ 39 3.8.1 Predefined Types...................................................................................................................................................... 39 3.8.2 Type References ....................................................................................................................................................... 40 3.8.3 Object Type Literals................................................................................................................................................. 41 3.8.4 Array Type Literals ................................................................................................................................................... 42 3.8.5 Tuple Type Literals................................................................................................................................................... 42 3.8.6 Union Type Literals.................................................................................................................................................. 43 3.8.7 Intersection Type Literals ...................................................................................................................................... 43 3.8.8 Function Type Literals ............................................................................................................................................ 43 3.8.9 Constructor Type Literals ...................................................................................................................................... 44 3.8.10 Type Queries .............................................................................................................................................................. 44 3.8.11 This-Type References ............................................................................................................................................. 45 3.9 Specifying Members .................................................................................................................................................... 46 3.9.1 Property Signatures................................................................................................................................................. 46 3.9.2 Call Signatures........................................................................................................................................................... 46 3.9.3 Construct Signatures .............................................................................................................................................. 50 3.9.4 Index Signatures ....................................................................................................................................................... 50 3.9.5 Method Signatures.................................................................................................................................................. 51 3.10 Type Aliases..................................................................................................................................................................... 52 3.11 Type Relationships........................................................................................................................................................ 54 3.11.1 Apparent Members ................................................................................................................................................. 54 3.11.2 Type and Member Identity................................................................................................................................... 56 3.11.3 Subtypes and Supertypes ..................................................................................................................................... 57 3.11.4 Assignment Compatibility .................................................................................................................................... 58 3.11.5 Excess Properties ...................................................................................................................................................... 59 3.11.6 Contextual Signature Instantiation ................................................................................................................... 61 3.11.7 Type Inference........................................................................................................................................................... 61 3.11.8 Recursive Types ........................................................................................................................................................ 62 3.12 Widened Types .............................................................................................................................................................. 63
4 Expressions ................................................................................................................................................................................. 65 4.1 Values and References ................................................................................................................................................ 65 4.2 The this Keyword ........................................................................................................................................................... 65 4.3 Identifiers.......................................................................................................................................................................... 66
ii
4.4 Literals ............................................................................................................................................................................... 66 4.5 Object Literals................................................................................................................................................................. 66 4.6 Array Literals ................................................................................................................................................................... 68 4.7 Template Literals ........................................................................................................................................................... 69 4.8 Parentheses ..................................................................................................................................................................... 69 4.9 The super Keyword....................................................................................................................................................... 70
4.9.1 Super Calls .................................................................................................................................................................. 70 4.9.2 Super Property Access ........................................................................................................................................... 70 4.10 Function Expressions ................................................................................................................................................... 71 4.11 Arrow Functions............................................................................................................................................................. 72 4.12 Class Expressions........................................................................................................................................................... 74 4.13 Property Access ............................................................................................................................................................. 74 4.14 The new Operator ......................................................................................................................................................... 75 4.15 Function Calls ................................................................................................................................................................. 76 4.15.1 Overload Resolution ............................................................................................................................................... 76 4.15.2 Type Argument Inference ..................................................................................................................................... 77 4.15.3 Grammar Ambiguities ............................................................................................................................................ 80 4.16 Type Assertions.............................................................................................................................................................. 80 4.17 JSX Expressions .............................................................................................................................................................. 81 4.18 Unary Operators ............................................................................................................................................................ 81 4.18.1 The ++ and -- operators....................................................................................................................................... 82 4.18.2 The +, ?, and ~ operators ..................................................................................................................................... 82 4.18.3 The ! operator............................................................................................................................................................ 82 4.18.4 The delete Operator................................................................................................................................................ 82 4.18.5 The void Operator ................................................................................................................................................... 82 4.18.6 The typeof Operator ............................................................................................................................................... 83 4.19 Binary Operators ........................................................................................................................................................... 83 4.19.1 The *, /, %, ?, , >>>, &, ^, and | operators...................................................................................... 83 4.19.2 The + operator .......................................................................................................................................................... 83 4.19.3 The , =, ==, !=, ===, and !== operators ................................................................................... 84 4.19.4 The instanceof operator ........................................................................................................................................ 84 4.19.5 The in operator ......................................................................................................................................................... 85 4.19.6 The && operator...................................................................................................................................................... 85 4.19.7 The || operator ........................................................................................................................................................... 85 4.20 The Conditional Operator.......................................................................................................................................... 86 4.21 Assignment Operators ................................................................................................................................................ 86 4.21.1 Destructuring Assignment.................................................................................................................................... 86 4.22 The Comma Operator ................................................................................................................................................. 87 4.23 Contextually Typed Expressions .............................................................................................................................. 88 4.24 Type Guards .................................................................................................................................................................... 89
5 Statements .................................................................................................................................................................................. 95
iii
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related searches
- job specification for finance manager
- system requirements specification example
- person specification manager
- job specification and job description
- system requirement specification template
- system verilog specification pdf
- ammo specification chart
- pdf specification pdf
- can 2 0b specification pdf
- specification sop in pharmaceutical
- computer specification software
- hardware and software specification example