TypeScript基础

目录

TypeScript

定义数据类型

条件判断

循环

函数

面向对象

模块开发


前言

        由于学习 HarmonyOS 需要运用到TypeScript语言,所以简单学习基础。特此记录下

TypeScript基础

定义数据类型

        TypeScript在JavaScript的基础上加入了静态类型检查功能,因此每一个变量都有固定的数据类型。

// 可以用 单引号 或 双引号
let msg: string = 'hello world'
// number:数值,整数、浮点数都可以
let age:number =21
// boolean:布尔
let finished:boolean =true
// any:不确定类型,可以是任意类型
let a:any = 'jack'
a = 21
// union:联合类型,可以指定类型中的一种
let u: string|number|boolean ='rose'
u=18
// Object:对象
let p ={name:'Jack',age:21}
console.log(p.name)
console.log(p['name'])
// Array:数组,元素可以是任意其它类型
let names:Array<string> = ['Jack','Rose']
let ages:number[]=[12,18]
console.log(names:Array[0])
  • let:声明变量的关键字,const代表常量
  • msg:变量名
  • 数据类型
    • string:字符串。可以用 单引号 或 双引号
    • number:数值,整型、浮点数
    • boolean:布尔值。
    • any:不确定类型,可以是任意类型。
    • 联合类型,
    • object对象

条件判断

注意:在TypeScript中,空字符串、数字0、nul、undefined都被认为是false,其它值则为true

// 定义数字
let num:number =21
// 判断是否为偶数
if(num % 2 ===0){
    console.log(name+'是偶数')
}else{
    console.log(name+'是奇数')
}
//判断是否是正数
if(num > 0){
    console.log(num+'是正数')
}else if(num<0){
    console.log(num+'是负数')
}else{
    console.log(num+'为0')
}
------------- switch -------------
let grade:string ='A'
switch(grade){
    case 'A':{
        console.log('优秀')
        break    
    }
    case 'B':{
        console.log('合格')
        break    
    }
    default:{
        console.log('非法输入')
        break    
    }
}

循环

        TypeScript支持for和while循环,并且为一些内置类型如Array等提供了快捷迭代语法。

// 普通for
for(let i=1;i<=10;i++){
    console.log('点赞'+i+'次')
}

// while
let i =1;
while(i <= 10){
    console.log('点赞'+i+'次')
    i++
}

//迭代器
// 定义数组
let names:string[] = ['Jack','Rose']
// for in 迭代器,遍历得到数组角标
for(const i in names){
    console.log(i + ':' + names[i])
}
// for of 迭代器,直接得到元素
for(const name of names){
    console.log(name)
}

函数

        TypeScript通常利用function关键字声明函数,并且支持可选参数、默认参数、箭头函数等特殊语法。

// 无返回值函数,返回值 void 可以省略
function sayHello(name:string):void{
    console.log('你好'+name+'!')
}
sayHello('Jack')

// 有返回值函数
function sum(x:number,y:number):number{
    return x + y
}
let result = sum(21,10)
console.log(result)

// 箭头函数
let sayHi=(name:string)=>{
    console.log('你好'+name+'!')
}
sayHi('Jack')

// 可选参数,在参数后面加 ?,表示该参数是可选的
function sayHello(name?:string):void{
    // 判断name是否有值,如果无值则给一个默认值
    name = name?name:'陌生人'
    console.log('你好'+name+'!')
}
sayHello('Jack')
sayHello()

// 参数默认值,在参数后面赋值,表示参数默认值。如果调用者没有传参,则使用默认值
function sayHello(name:string='陌生人'):void{
    console.log('你好'+name+'!')
}
sayHello('Jack')
sayHello()

面向对象

        TypeScript具备面向对象编程的基本语法,例如interface、class、enum等。也具备封装继承、多态等面向对象基本特征。

// 定义枚举
enum Msg{
    HI = 'Hi',
    HELLO = 'Hello'
}

// 定义接口,抽象方法接收枚举参数
interface A{
    say(msg: Msg):void
}

// 实现接口
class B implements A{
    say(msg:Msg):void {
        console.log(msg+'I am B')
    }
}
//初始化对象
let a:A = new B()
//调用方法,传递枚举
a.say(Msg.HI)
-----------第二个案例-----------
// 定义矩形类
class Rectangle{
    //成员变量
    private width:number
    private length:numer
    // 构造函数
    constructor(width:numer,length:number){
        this.width=width
        this.length = length
    }
    //成员方法
    public area():number{
        return this.width * this.length
    }         
}

// 定义正方形
class Square extends Rectangle{
    constructor(side:number){
        // 调用父类构造
        super(side, side)
    }
}
let s = new Square(10)
console.log('正方形面积为:'+s.area())

模块开发

        应用复杂时,把通用功能抽取到单独的ts文件中,每个文件都是一个模块(module)模块可以相互加载,提高代码复用性。

------------ 导出 ------------
rectangle.ts
// 定义矩形类,并通过export导出。这样外界就能使用
export class Rectangle {
    //成员变部
    public width: number
    public length: number
    //构造函数
    constructor(width: number,length:number){
        this.width = width
        this.length = length
    }
}

// 定义工具方法,求矩形面积,并通过export导出
export function area(rec: Rectangle):number{
    return rec.width * rec.length
}

------------ 导入 ------------
index.ts
// 通过import语法导入,from后面写文件的地址
import {Rectangle,area} from '../rectangle'
// 创建Rectangle对象
let r = new Rectangle(10,20)
// 调用area方法
console.log('面积为:'+area(r))

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值