TypeScript notes

安装

全局安装

npm install -g typescript

将 TypeScript 转换为 JavaScript 代码

tsc 文件名.ts

tsc 常用编译参数如下表所示:
TypeScript notes

类型

任意类型 any:声明为 any 的变量可以赋予任意类型的值。
数字类型 number:双精度 64 位浮点值。它可以用来表示整数和分数。
字符串类型 string:一个字符系列,使用单引号(’)或双引号(")来表示字符串类型。反引号(`)来定义多行文本和内嵌表达式。

布尔类型boolean:表示逻辑值:true 和 false。
枚举 enum:枚举类型用于定义数值集合。
void void:用于标识方法返回值的类型,表示该方法没有返回值。
null null:表示对象值缺失。
undefined undefined:用于初始化变量为一个未定义的值。
never never:是其它类型(包括 null 和 undefined)的子类型,代表从不会出现的值。

变量声明

TypeScript 变量的命名规则

  • 变量名称可以包含数字和字母。
  • 除了下划线 _ 和美元 $ 符号外,不能包含其他特殊字符,包括空格。
  • 变量名不能以数字开头。

声明变量的始终方式

声明变量的类型及初始值:

var [变量名] : [类型] = 值;

声明变量的类型,但没有初始值,变量值会设置为 undefined:

var [变量名] : [类型];

声明变量并初始值,但不设置类型,该变量可以是任意类型:

var [变量名] = 值;

声明变量没有设置类型和初始值,类型可以是任意类型,默认初始值为 undefined:

var [变量名];

运算符

  1. 算术运算符
+  -  *  /  %  ++  --
  1. 逻辑运算符
&&  ||  ! 
  1. 关系运算符
==  !=  >  <  >=  <=
  1. 按位运算符
&  !  ~  ^  << >> >>>
  1. 赋值运算符
=  += -=  *=  /=
  1. 三元/条件运算符
Test ? expr1 : expr2
  1. 字符串运算符
连接运算符 (+)
  1. 类型运算符
typeof  instanceof 

条件语句

  1. if
if(boolean_expression){
    # 在布尔表达式 boolean_expression 为 true 执行
}
  1. if…else
if(boolean_expression){
   # 在布尔表达式 boolean_expression 为 true 执行
}else{
   # 在布尔表达式 boolean_expression 为 false 执行
}
  1. if…else if…else
if(boolean_expression 1){
    # 在布尔表达式 boolean_expression 1 为 true 执行
}
else if( boolean_expression 2){
    # 在布尔表达式 boolean_expression 2 为 true 执行
}
else if(( boolean_expression 3){
    # 在布尔表达式 boolean_expression 3 为 true 执行
}
else{
    # 布尔表达式的条件都为 false 时执行
}
  1. switch
switch(expression){
    case constant-expression  :
       statement(s);
       break; /* 可选的 */
    case constant-expression  :
       statement(s);
       break; /* 可选的 */
  
    /* 您可以有任意数量的 case 语句 */
    default : /* 可选的 */
       statement(s);
}

循环

  1. for
for ( init; condition; increment ){
    statement(s);
}
  1. for…in
for (var val in list) { 
    //语句 
}
  1. for…of
let someArray = [1, "string", false];
 
for (let entry of someArray) {
    console.log(entry); // 1, "string", false
}
  1. forEach
let list = [4, 5, 6];
list.forEach((val, idx, array) => {
    // val: 当前值
    // idx:当前index
    // array: Array
});
  1. every
let list = [4, 5, 6];
list.every((val, idx, array) => {
    // val: 当前值
    // idx:当前index
    // array: Array
    return true; // Continues
    // Return false will quit the iteration
});
  1. while
while(condition)
{
   statement(s);
}
  1. do…while
do
{
   statement(s);
}while( condition );
  1. 无限循环
for(;;) { 
   // 语句
}

函数

函数定义

function function_name()
{
    // 执行代码
}

调用函数 function_name()
函数返回值

function function_name():return_type { 
    // 语句
    return value; 
}

带参数函数

function func_name( param1 [:datatype], param2 [:datatype]) {   
}

匿名函数 var res = function( [arguments] ) { ... }
构造函数 var res = new Function ([arg1[, arg2[, ...argN]],] functionBody)
Lambda 函数 ( [param1, parma2,…param n] )=>statement;
函数重载
参数类型不同:

function disp(string):void; 
function disp(number):void;

参数数量不同:

function disp(n1:number):void; 
function disp(x:number,y:number):void;

参数类型顺序不同:

function disp(n1:number,s1:string):void; 
function disp(s:string,n:number):void;

Number

var num = new Number(value);

对象属性
MAX_VALUE MIN_VALUE NaN NEGATIVE_INFINITY POSITIVE_INFINITY prototype constructor
对象方法
toExponential() toFixed() toLocaleString() toPrecision() toString() valueOf()

数组

 var array_name[:datatype];        //声明 
array_name = [val1,val2,valn..]   //初始化

or

var array_name[:data type] = [val1,val2…valn]

Map

let myMap = new Map();
let myMap = new Map([
        ["key1", "value1"],
        ["key2", "value2"]
    ]); 

Map 相关的函数与属性

map.clear() – 移除 Map 对象的所有键/值对 。
map.set() – 设置键值对,返回该 Map 对象。
map.get() – 返回键对应的值,如果不存在,则返回 undefined。
map.has() – 返回一个布尔值,用于判断 Map 中是否包含键对应的值。
map.delete() – 删除 Map 中的元素,删除成功返回 true,失败返回 false。
map.size – 返回 Map 对象键/值对的数量。
map.keys() - 返回一个 Iterator 对象, 包含了 Map 对象中每个元素的键 。
map.values() – 返回一个新的Iterator对象,包含了Map对象中每个元素的值 。

元组

数组中元素的数据类型都一般是相同的(any[] 类型的数组可以不同),如果存储的元素数据类型不同,则需要使用元组。
元组中允许存储不同类型的元素,元组可以作为参数传递给函数。

var tuple_name = [value1,value2,value3,…value n]

联合类型

Type1|Type2|Type3

接口

interface interface_name { 
}

class class_name { 
    // 类作用域
}

创建实例化对象

var object_name = new class_name([ arguments ])

类的继承

class child_class_name extends parent_class_name
上一篇:Docker - Study Notes


下一篇:[DataStructure]notes-sort 排序合集