CocosCreator入门(八) ------ TypeScript

https://www.runoob.com/typescript/ts-basic-syntax.html

 

Helloworld

const hello : string = "Hello World!"
console.log(ello)

 

类演示

class Site { 
   name():void { 
      console.log("Runoob") 
   } 
} 
var obj = new Site(); 
obj.name();

 

基础类型

 

number:数字
string:字符串
boolean:布尔

元组
let x: [string, number];
x = ['Runoob', 1];    // 运行正常
x = [1, 'Runoob'];    // 报错
console.log(x[0]);    // 输出 Runoob
枚举
enum Color {Red, Green, Blue};
let c: Color = Color.Blue;
console.log(c);    // 输出 2
const getValue = () => {
  return 0
}

enum List {
  A = getValue(),
  B = 2,  // 此处必须要初始化值,不然编译不通过
  C
}
console.log(List.A) // 0
console.log(List.B) // 2
console.log(List.C) // 3
function hello(): void {
    alert("Hello Runoob");
}

null
undefined:用于初始化变量为一个未定义的值
never:never 是其它类型(包括 null 和 undefined)的子类型,代表从不会出现的值

let x: any = 1;    // 数字类型
x = 'I am who I am';    // 字符串类型
x = false;    // 布尔类型

let arrayList: any[] = [1, false, 'fine'];
arrayList[1] = 100;
// 启用 --strictNullChecks
let x: number | null | undefined;
x = 1; // 运行正确
x = undefined;    // 运行正确
x = null;    // 运行正确

 

数组定义

// 在元素类型后面加上[]
let arr: number[] = [1, 2];

// 或者使用数组泛型
let arr: Array = [1, 2];

join():数组元素合并字符串
map()逐个处理数组元素,numbers.map(Math.sqrt);
reduce、reduceRight

 

for…of 、forEach、every 和 some 循环

此外,TypeScript 还支持 for…of 、forEach、every 和 some 循环。

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
}

let list = [4, 5, 6]; list.forEach((val, idx, array) => { // val: 当前值 // idx:当前index // array: Array });
let list = [4, 5, 6]; list.every((val, idx, array) => { // val: 当前值 // idx:当前index // array: Array return true; // Continues // Return false will quit the iteration });

  

 函数定义

 

function function_name( param1 [:datatype], param2 [:datatype], lastName?: string)
:return_type { // 语句 return value; }
// lastName为可选参数,可有可没有
// 缺省参数同其他语言一致
// 剩余参数 ...a:string[]

// 匿名函数:var func1 = function:number(){...}

// 构造函数:
var myFunction = new Function("a", "b", "return a * b"); 
var x = myFunction(4, 3); 
 
// Lambda
var foo = (x:number)=>10 + x console.log(foo(100)) //输出结果为 110

 

 

Number

toFixed()
把数字转换为字符串,并对小数点指定位数。
toPrecision()
把数字格式化为指定的长度。

 

String

charAt()
返回在指定位置的字符。
var str = new String("RUNOOB"); 
console.log("str.charAt(0) 为:" + str.charAt(0)); // R

charCodeAt()
返回在指定的位置的字符的 Unicode 编码。
var str = new String("RUNOOB"); 
console.log("str.charCodeAt(0) 为:" + str.charCodeAt(0)); // 82

concat()
连接两个或更多字符串,并返回新的字符串。

indexOf()
返回某个指定的字符串值在字符串中首次出现的位置。

lastIndexOf()
从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置。

  

元组

var a =[10,"Runoob"] 
var [b,c] = a 
console.log( b )    
console.log( c )

 

TypeScript 联合类型

var val:string|number 
val = 12 
console.log("数字为 "+ val) 
val = "Runoob" 
console.log("字符串为 " + val)

 

TypeScript 接口

interface IPerson { 
    firstName:string, 
    lastName:string, 
    sayHi: ()=>string 
} 
 
var customer:IPerson = { 
    firstName:"Tom",
    lastName:"Hanks", 
    sayHi: ():string =>{return "Hi there"} 
} 

 

class Car { 
   // 字段
   engine:string; 
   
   // 构造函数
   constructor(engine:string) { 
      this.engine = engine 
   }  
   
   // 方法
   disp():void { 
      console.log("函数中显示发动机型号  :   "+this.engine) 
   } 
} 
 
// 创建一个对象
var obj = new Car("XXSY1")

class PrinterClass { 
   doPrint():void {
      console.log("父类的 doPrint() 方法。") 
   } 
} 
 
class StringPrinter extends PrinterClass { 
   doPrint():void { 
      super.doPrint() // 调用父类的函数
      console.log("子类的 doPrint()方法。")
   } 
}

// 静态
class StaticMem {  
   static num:number; 
   
   static disp():void { 
      console.log("num 值为 "+ StaticMem.num) 
   } 
} 
 
StaticMem.num = 12     // 初始化静态变量

// 判断是否是指定类
var isPerson = obj instanceof Person; 

// 接口
class AgriLoan implements ILoan

 

TypeScript 对象

var object_name = { 
    key1: "value1", // 标量
    key2: "value",  
    key3: function() {
        // 函数
    }, 
    key4:["content1", "content2"] //集合
}

  

命名空间

namespace SomeNameSpaceName { 
   export interface ISomeInterfaceName {      }  
   export class SomeClassName {      }  
}

 

export:模块外部可见

 

你可能感兴趣的:(CocosCreator入门(八) ------ TypeScript)