TypeScript基本语法

TypeScript基本语法

typescript:包含数据类型,变量,常量,函数,类与对象,运算符,程序结构、模块与命名空间等,是一种脚本语言。是javaScript语言的加强。

ts环境搭建

1.安装nodejs

nodejs是JavaSprite运行环境

nodejs.org//nodejs的官网

nodejs.cn//nodejs的中国网站

目前稳定的版本为:node-v10.16.0

TLS为长期维护版本,比较稳定

2.检查nodejs是否安装成功

打开控制台:使用node -v指令查看nodejs的版本。

打开控制台的方法:

1.win+r,输入cmd打开

在当前目录的路径栏中输入cmd,直接打开当前路径的控制台窗口

2.powershell:shift+鼠标右键->弹出菜单,选择打开powershell窗口,建议使用

3.安装typescript

打开控制台:npm i -g typescript//安装typescript,其中npm自带的包管理器,可以安装库,利用tsc检查是否安装成功

4.ts运行的原理

ts—(编译)—>js—(编译)—>运行

5.记事本运行方法

tsc test.ts(ts的文件名)//编译ts文件,编译完成之后会自动生成js文件

tsc test.ts(ts的文件名) -w//监测ts文件是否有改动,有改动则自动编译成js,直到关闭控制台窗口或ctrl+c手动停止(单文件监测编译)

创建一个文件tsconfig.json,在使用tsc -w就可以进行文件夹的监测编译,包括文件夹中的文件夹的内容(多文件监测编译),tsconfig.json中的内容:

{}

node test.js(js的文件名)//运行js文件

console.log("Hello World");//输出语句

6.IDE

vsCode软件,插件多

ts变量

1.变量的作用域

全局作用域:作用在整个ts文件

类的作用域:作用在类中,可通过类的对象访问普通类变量,类的静态变量通过类名直接访问

局部作用域:作用在目前的代码块当中

2.变量的声明

let:当前块作用域下//{}之中

var:全局环境

const:和let一样在块作用域中,但是用来声明常量,不可以进行赋值

3.变量类型的限定

let/var/const 标识符:数据类型 =;

变量可以不进行限定,在赋值时会自动转换成相应的类型,已赋值的变量的类型会自动限定。

4.notes

1.typescript区分大小写

2.typescript一行代码中的;可写可不写

3.注释

//单行
/*多行注释*/

数据类型

1.任意类型any,变量可以赋予任意类型的值

2.数字类型number,在ts中只有number类型,双精度64位浮点值,相当于C++中的double类型。

//查看最大最小值的属性
Number.MAX_VALUE
Number.MIN_VALUE
//数字转换成字符串
let num:number=100let str:string=num.toString();

3.字符串类型string,在ts中只有字符串类型,没有char类型,并且" "和’ '是通用的,都表示字符串,但双引号和单引号不能混用

//1.切割字符串,split方法,和py中的用法相似
let str="hello  world  a";
let str1=str.split("  ",3);//切成3段,以两个空格切割
console.log(str1);//结果为['hello','world','a']
//2.length属性
let str='12345';
console.log(str.length);//结果为5
//3.连接字符串+
let str1='123';
let str2='456';
let str3=str1+str2;//123456
//4.截取字符串subString方法
let str = '123456789';
console.log(str.substring(1,5));//2345区间取于[1,5),结束下标参数可以没有,默认到最后
console.log(str.substring(1));//23456789

4.boolean类型 true和false

5.数组类型,没有关键字,也是从下标0开始,并且不是固定长度的,可以自动扩容

let arr=[2,3,4];
arr[3]=5;
console.log(arr);//不用像C++中那样循环输出
console.log(typeof(arr));//object
let arr:any=[1,"2"];//any类型数组可以存放不同类型的元素
//多维数组
let num:number[][];
num=[[1,2,3],[4,5,6]];

6.元组类型,表示已知元素数量和类型的数组,一种特殊的数组,主要使用个数限定这个优点

let yz:[string,number];
yz=["lisi",1];
console.log(typeof(yz));//object基础类型,是一个对象,用typeof无法和数组区别开来

7.枚举类型

enum COLOR {red,green,blue};
let rr = COLOR.red;
let rrr:COLOR;

8.void类型,用于函数返回值

9.null类型,有值,定义了,赋值为null

10.undefined类型,没有值,定义了当没有赋值

11.never类型,从来不会出现的值,继承自null和undefined

typescript运算符

C++:算数运算符,逻辑运算符,关系运算符,位运算符,赋值运算符,杂项运算符(sizeof,三元,&,*,成员运算符,逗号运算符)

ts:算术运算符,逻辑运算符,关系运算符,位运算符,赋值运算符,(三元,类型typeof,字符串运算符)

1.算数运算符

七种:+、-、*、/、%、++、–

2.关系运算符

用于数值或变量判断

>、<、==、>=、<=、!=

3.逻辑运算符

多用于条件的判断,返回布尔类型的值

与&&、或||、非!

小要点:(与和或为短路运算符)前面的能判断出结果,就不会判断后面的式子

4.位运算符

用于流数据,主要是音频

&(and)、|(or)、~(取反)、<<(左移)、>>(右移)、>>>(无符号右移)

流处理和网络协议类似,两种方式:

1.服务器将所有的数据包接收到之后再发送

2.服务器接收一个数据包,检测顺序之后再直接发送给客服端

5.赋值运算符

=、+=、-=、/=、*=、%=

6.三元运算符

(条件)? 值1 : 值2

7.类型运算符

typeof()//判断是什么类型

let a = 10;
console.log(typeof(a));//输出number

8.字符串连接符+

可以多个字符串连接,和python中的用法一样

let str1="hello";
let str2="world";
console.log(str1+str2);//输出helloworld

结构

1.条件选择

if、if…else…、嵌套、switch结构,其中switch中的条件中的值必须为number或枚举类型

2.循环

for、for in、for of、while、do…while

for(const i in arr){
	console.log("输出",i,arr[i]);//i为下标
}
for(const iterator of arr){
	console.log(iterator);//iterator为数组中的值
}

3. 跳出

continue、break

函数

关键字:function

定义方式:function 函数名(形参列表):返回值类型{

​ 函数体

}

使用函数的方法:函数名(形参值);

function test():number{
	console.log("test");
	return 1;
}//无参函数
function name(str:string):number{
    console.log(str);
    return 1;
}//有参函数

可选参数(?表示调用该函数可以对该参数进行赋值,也可以不对该参数进行赋值)

function test(str:number,num?:number){
	...
}//num可以赋值,也可以不赋值
test("hello");
test("hello",1);//这两种调用方式都对

默认参数

function test(num:number,str:string="nb"){
	...
}//当没有给str赋值时,str的值为nb

剩余参数(可变参数,多参数,参数数组),参数个数不固定

function test(...num:number[]):number{
    for(let index=0;index<num.length;index++){
    	const element = num[index];
        console.log(element);
    }
    return 1;
}
test(1,2,3,4,5,6);

匿名函数(无函数名)

利用变量的生存周期来防止全局下的污染

let mas=function(){
	return "匿名函数";
}
console.log(msg());

//箭头函数,可以用于回调函数中
()=>{
	函数体
}

类与对象

定义方式:

class stu{
	//类的成员变量
	id:number;
	name:string;
	//构造,和c++类似
	constructor(){
		name="123";
        id=1;
	}
	//类的成员方法
	setName(name:string):void{
        this.name=name;
    }
}

调用:

let yi = new stu();
yi.setName("123456");

继承:

关键字:extends

class ITStu extend str{
	static major:string;//静态变量
    getMajor(){
        return '计算机专业';
    }
    setName(name:string):void{
        super.setName(name);//调用父类的方法,且重写了setName方法
    }
}
let yi = new ITStu();
console.log(ITStu.major);//访问静态变量的方法

引入外部代码(类似于头文件的导入)

import 类名 from 路径

你可能感兴趣的:(typescript,cocos-creator)