安装
全局安装
npm install -g typescript
将 TypeScript 转换为 JavaScript 代码
tsc 文件名.ts
tsc 常用编译参数如下表所示:
类型
任意类型 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 [变量名];
运算符
- 算术运算符
+ - * / % ++ --
- 逻辑运算符
&& || !
- 关系运算符
== != > < >= <=
- 按位运算符
& ! ~ ^ << >> >>>
- 赋值运算符
= += -= *= /=
- 三元/条件运算符
Test ? expr1 : expr2
- 字符串运算符
连接运算符 (+)
- 类型运算符
typeof instanceof
条件语句
- if
if(boolean_expression){
# 在布尔表达式 boolean_expression 为 true 执行
}
- if…else
if(boolean_expression){
# 在布尔表达式 boolean_expression 为 true 执行
}else{
# 在布尔表达式 boolean_expression 为 false 执行
}
- 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 时执行
}
- switch
switch(expression){
case constant-expression :
statement(s);
break; /* 可选的 */
case constant-expression :
statement(s);
break; /* 可选的 */
/* 您可以有任意数量的 case 语句 */
default : /* 可选的 */
statement(s);
}
循环
- for
for ( init; condition; increment ){
statement(s);
}
- for…in
for (var val in list) {
//语句
}
- for…of
let someArray = [1, "string", false];
for (let entry of someArray) {
console.log(entry); // 1, "string", false
}
- forEach
let list = [4, 5, 6];
list.forEach((val, idx, array) => {
// val: 当前值
// idx:当前index
// array: Array
});
- 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
});
- while
while(condition)
{
statement(s);
}
- do…while
do
{
statement(s);
}while( condition );
- 无限循环
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