一、TypeScript变量声明
1、变量的命名规则:
(1)变量名称可以包含数字和字母
(2)变量名称不能以数字开头
(3)变量中的只能以_和$命名,不能使用其他符号
2、变量的声明方式
(1)var 变量名 :类型 = 值 eg:var user : string = "JOE";
(2)var 变量名 : 类型 eg:var user : string; (无初始值,默认值为undefined)
(3)var 变量名 = 值 eg:var user = "JOE"; (无默认类型,可以为任意类型)
(4)var 变量名 eg:var user; (无初始值,无默认类型,可以为任意类型,默认值为undefined)
3、断言(类似类型转换,但是运行时没有任何操作支持,只是编译时的语法,所以不是类型转换)
<类型>值 或 值 as 类型
var str = '1'
var str2:number = <number> <any> str //str、str2 是 string 类型
console.log(str2)
二、TypeScript数据类型
基本类型:
number let number : age = 25;
string let string : user = "JOE";
boolean let boolean : flag = true;
数组类型 let arr : number[ ] = [1,2,3,4,5];
或 let arr : Array<number> = [1,2,3,4,5];
元组类型(存放不同类型数据的数组) let test : [string,boolean,number,...string] = ["JOE",true,25,"Jun","july","asor","sdsd"]; 注: ...string表示多个字符串元素
枚举 enum Color = {blue,yellow,red};
let c : Color = Color.blue;
void(返回值为空) function hello():void{
方法体
}
any(用于变量类型不确定) let x:any = 1;
let x:any = "JOE";
let x:any = true;
x = 15;
任意类型的数组 let arr:any[] = [1,"JOE",true];
null和undefined(JS中null和undefined可以赋值给基础类型)
例如:let x:number = 1;
x = null;(TypeScript报错)
x = undefine;(TypeScript报错)
如果一个变量可能出现null或者undefined可以用 | 来支持多种类型
例如: let x:number | null | undefined = 1;
x = null;(正确)
x = undefined;(正确)
never 其他类型(null和undefined)的子类型,在方法中有无限死循环或者抛出异常时,作为方法的返回值。
let x: never;
let y: number;
// 运行错误,数字类型不能转为 never 类型
x = 123;
// 运行正确,never 类型可以赋值给 never类型
x = (()=>{ throw new Error('exception')})();
// 运行正确,never 类型可以赋值给 数字类型
y = (()=>{ throw new Error('exception')})();
// 返回值为 never 的函数可以是无法被执行到的终止点的情况
function loop(): never {
while (true) {}
}
// 返回值为 never 的函数可以是抛出异常的情况
function error(message: string): never {
throw new Error(message);
}
三、运算符
运算符:typeof 返回变量的数据类型
typeof 变量
四、循环语句
for...in 循环语句
var j:any; //j必须为any或者string
var n:any = "a b c"
for(j in n) {
console.log(n[j])
}
for...of循环语句(for...of 语句创建一个循环来迭代可迭代的对象。在 ES6 中引入的 for...of 循环,以替代 for...in 和 forEach() ,并支持新的迭代协议。for...of 允许你遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等可迭代的数据结构等)
let someArray = [1, "string", false];
for (let entry of someArray) {
console.log(entry); // 1, "string", false
}
四、函数调用
函数格式:
function 函数名称(参数1:参数类型,参数2:参数类型):返回值类型{
//方法体
}
示例:
function getUser(username:string,userId:number){
//方法体
}
1、可选参数(可选参数后面带?号,且可选参数必须在必选参数的后面)
function 函数名称 (必选参数1:参数类型,必选参数2:参数类型,可选参数?:参数类型):返回值类型{
//方法体
}
示例:
function getUser(userName:string,userId:number,age?:number){
//方法体
}
2、默认参数(默认参数用于,调用方法时没有传参进来则使用默认参数值,如果默认参数有传参进来则使用传进来的值)
function 函数名称(参数1:参数类型,参数2:参数类型,默认参数:参数类型 = 默认参数值):返回值类型{
//方法体
}
function getUser(userName:string = "JOE",userId : number,age:number = 25){
//方法体
}
3、剩余参数(当不知道传入的参数个数时,最后以...为前缀传入一个参数的数组)
function 函数名称(参数1:参数类型,参数2:参数类型,...剩余参数:参数数组类型[]):返回值类型{
//方法体
}
function getUserList(userName:string,userId:number,...userInfo:string[]){
//方法体
}
4、匿名函数(没有函数名的函数)
//匿名函数
function(参数:参数类型){//方法体}
//函数表达式
var test = function (参数:参数类型){//方法体}
调用匿名函数:test(参数);
5、构造函数(js内置的构造函数,无
var 函数表达式 = new Function (参数1,参数2,参数3,方法体)
示例:
var test = new Function("a","b","return a");
调用 var t = test(4,3);
)
本文仅供作者自己参考,部分示例来源于菜鸟教程,侵删。