TypeScript 基本语法

TypeScript 基本语法

基础语法

布尔值、数字、字符串、数组、元组、枚举、UnKnown、void、Null Undefined
联合类型

//布尔值
    let isDone: boolean = false
    //数字 可以是十进制,也可以是二进制、八进制、十六进制,输出后都会转化为十进制
    let  decLiteral : number = 2023;
    let binaryLiteral: number = 0b11111100111;
    let octalLiteral: number = 0o3747;
    let hexLiteral: number = 0x7e7;

    //字符串 可以单引号也可以是引号
    let  name : string = "jack";
    let  name1 : string = 'jack';

    //数组 1:元素类型后直接跟[]  2:使用数组范型:Array<元素类型>
    let list : number[] = [1,2,3,4,5];
    let  list2 : Array<number> = [1,2,3,4,5];

    //元组 元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同
    let x : [string, number] = ['jack',10];

    //枚举  enum类型是对JavaScript标准数据类型的一个补充,使用枚举类型可以为一组数值赋予友好的名字。
    enum Color {Red, Green, Blue};
    let c : Color = Color.Red;

    //void  函数没有返回值;
    function test() : void {
      console.log("this is begin");
    }

    //Null Undefined  undefined和null两者各自有自己的类型分别叫做undefined和null。
    let u : undefined = undefined;
    let  n : null  = null;

    //联合类型 表示取值可以是多种类型的一种
    let myFavoriteNumber : string | number;
    myFavoriteNumber = "seven"
    myFavoriteNumber = 7;

条件语句

if. if…else… switch…case…

函数:

函数声明要告诉编译器函数的名称、返回类型和参数。TypeScript可以创建有名字的函数和匿名函数,

    //有名函数
    function add(x : number, y : number) : number{
      return x + y;
    }

    //匿名函数
    let myAdd =  function (x : number , y : number) : number{
       return x + y;
    }
    
    //可选参数
    function buildName(firstName : string, lastName?:string){
      if(lastName){
        return firstName + "" + lastName;
      }else{
        return firstName;
      }
      
      let result1 = buildName("Bob");
      let result2 = buildName("Bob", "Adams");

可选参数:在TypeScript里我们可以在参数名旁使用 ?实现可选参数的功能。 比如,我们想让lastName是可选的
剩余参数:剩余参数会被当作个数不限的可选参数,可以一个都没有,同样也可以有任意个:

    //剩余参数
    function getEmployeeName(firstName : string, ...restOfName : string[]){
      return firstName + '' + restOfName.join('');
    }
    
    let employeeName = getEmployeeName('joseph', 'samuel', 'Lucas', 'Mackinzie');

箭头函数:是匿名函数的简写语法,省略了function 关键字;

( [param1, parma2,…param n] )=> {
    // 代码块
}

let arrowFun = ( [param1, parma2,…param n] )=> {
    // 代码块
}

arrowFun(param1, parma2,…param n)

类:

TypeScript支持基于类的面向对象的编程方式,定义类的关键字为 class,后面紧跟类名。类描述了所创建的对象共同的属性和方法。

class Person {
      private name : string;
      private age : number;

      constructor(name : string, age : number) {
        this.name = name;
        this.age = age;
      }

      public getPersonInfo() : string {
        return `My name is ${this.name} and age is ${this.age}`;
      }

}

let Person1 = new Person('jack',18);
Person1.getPersonInfo();
    

继承

ypeScript中允许使用继承来扩展现有的类,对应的关键字为extends。

class Employee extends Person {
  private department: string

  constructor(name: string, age: number, department: string) {
    super(name, age);
    this.department = department;
  }

  public getEmployeeInfo(): string {
    return this.getPersonInfo() + ` and work in ${this.department}`;
  }
}


let person2 = new Employee('Tom', 28, 'HuaWei');
person2.getPersonInfo();
person2.getEmployeeInfo();

模块

随着应用越来越大,通常要将代码拆分成多个文件,即所谓的模块(module)。模块可以相互加载,并可以使用特殊的指令 export 和 import 来交换功能,从另一个模块调用一个模块的函数
两个模块之间的关系是通过在文件级别上使用 import 和 export 建立的。模块里面的变量、函数和类等在模块外部是不可见的,除非明确地使用 export 导出它们。类似地,我们必须通过 import 导入其他模块导出的变量、函数、类等。

//导出
export class NewsData {
  title: string;
  content: string;
  imagesUrl: Array<NewsFile>;
  source: string;

  constructor(title: string, content: string, imagesUrl: Array<NewsFile>, source: string) {
    this.title = title;
    this.content = content;
    this.imagesUrl = imagesUrl;
    this.source = source;
  }
}

导入:模块的导入操作与导出一样简单。 可以使用以下 import形式之一来导入其它模块中的导出内容
import { NewsData } from '../common/bean/NewsData';


迭代器

当一个对象实现了Symbol.iterator属性时,我们认为它是可迭代的。一些内置类Array、Map、Set、String、Int32Array等对象具有可迭代性。

//for in 迭代的是对象的键;
    // for of 迭代的是对象的值
    let list3  = [4,5,6];
    for (let i in list3) {
      console.log(i);   //0,1,2;
    }

    for (let element of list3) {
      console.log(element + " ");  // 4,5,6
    }

TypeScript是一个开源的编程语言,本章节只介绍了TypeScript的基础语法知识,更多内容大家可以参考TypeScript的官方教程(https://www.typescriptlang.org/docs/)。大家在学习过程中,如果没有搭建TypeScript的开发环境,也可以直接使用在线Playground平台(https://www.typescriptlang.org/play)进行编码练习。已掌握TypeScript编程基础的学员可以跳过本章节的学习,没有接触过TypeScript的同学可以先补齐相关的语法基础,再进入HarmonyOS的相关开发学习之旅。

你可能感兴趣的:(鸿蒙开发学习,typescript,javascript,前端)