首页 > 其他分享 >TS进阶1

TS进阶1

时间:2024-01-19 13:12:07浏览次数:16  
标签:return string title number value TS class 进阶

//1、函数重载
function hello(name:string):string
function hello(age:number):string
function hello(value : string | number): string {
    if (typeof value === 'string') {
        return '你好,我的名字是'+value
    } else if (typeof value === 'number') {
        return `你好,我的年龄是${value}`
    } else {
        return '非法格式'
    }
}
hello(32)
hello('aidon')
//2、接口继承
interface Parent {
    prop1:string
    prop2:number
}
interface Child extends Parent {
    prop3:string
}
const MyObj:Child = {
    prop1:'',
    prop2:1,
    prop3:''
}
//3、类
// 类的修饰符
class Article {
    public title:string  //公开的  任何地方可以访问 默认给public
    content:string
    aaa?:string  //可选
    bbb = 100 //可选  默认给100  number类型
    private tempDate?:string   //私有的,只能在类Article内部访问
    protected innerData?:string  // 受保护,只能在类Article及子类中访问
    static author:string //静态属性,将属性设置给类本身,而不是设置给类的实例
    private static author1:string   // 私有的静态属性
    private static readonly author2:string= 'qqqqq'   // 私有的 静态的 只读属性  不能对其在进行赋值
    constructor (title:string,content:string){
        this.title = title
        this.content = content
    }
}

const a = new Article('标题','内容')
a.aaa = '123'
a.bbb = 123
Article.author = 'qqq' // 不能a.auchor
//a.tempDate   a.innerData
class Bo extends Article {
    constructor (title:string,public content:string) {   // 也可以在这里私有属性,但是不建议
        super(title, content)
        this.innerData = "123"
    }
}
//4、存取器
class User {
    private _password:string = ""  //私有属性一般给一个下划线

    get password():string {  //不能读取  读取的话 给个*****
        return "******"
    }
    set password(newPass:string){   //  可以修改重写
        this._password = newPass
    }
}
const u = new User()
console.log(u.password)  // 不能访问_password
//5、抽象类 abstract
abstract class Animal {
    abstract name: string
    abstract maskSound():void
    move():void {
        console.log('移动');
    }
}
class Cat extends Animal {
    name:string = "小猫"
    maskSound(): void {
        
    }
}
//6、类实现接口
interface Animal1 {
    name:string  //普通的属性
    get sound():string //  存储器
    makeSound():void //  普通的方法

}
interface B {
    age:number
}

class Dog implements Animal1,B {
    name:string = '小狗'
    age:number = 5
    get sound(){
        return ""
    }
    makeSound(): void {
        
    }
}
//7、泛型类
class MyClass<T> {
    public value:T
    constructor (value:T) {
        this.value=value
    }
    do (input:T):T {
        console.log("处理数据",this.value);
        return input
        
    }
}

const myStr = new MyClass<string>("hello")
myStr.do("abasdf")
const myNUm = new MyClass<number>(11111)
myNUm.do(22222)

 

标签:return,string,title,number,value,TS,class,进阶
From: https://www.cnblogs.com/maplethefox/p/17974395

相关文章

  • TSP 的遗传算法
    省流:不如模拟退火打OI的时候一直对乱搞很感兴趣,只是没时间学,现在算是弥补一下吧旅行商问题(TravelingSalesmanProblem,TSP):求无向图边权和最小的哈密顿回路#include<bits/stdc++.h>usingnamespacestd;constdoubleeps=1e-8;mt19937mt(20050827);intrnd(in......
  • Nginx基础配置详解(main、events、http、server、location)
    Nginx基础配置详解(main、events、http、server、location):https://blog.csdn.net/weixin_43834401/article/details/130562289?ops_request_misc=&request_id=&biz_id=102&utm_term=nginx%20server%20%E7%9A%84%E6%A0%B9%E7%9B%AE%E5%BD%95&utm_medium=distribute.pc_......
  • 鸿蒙生态游戏揭开进阶新篇章,25家游戏伙伴参加合作仪式
    1月18日,鸿蒙千帆启航仪式在深圳召开,华为宣布HarmonyOSNEXT鸿蒙星河版开发者预览面向开发者开放申请,并公布鸿蒙生态最新进展:鸿蒙生态设备数量仅历时5个月即从7亿增长至8亿,千行百业实现万物互联,将打开万亿级产业新蓝海。游卡网络、紫龙游戏、雷霆游戏、巨人网络、中旭未来、游酷盛......
  • Android setStatusBarDisable
    Android中的setStatusBarDisable方法详解在Android开发中,我们经常需要定制状态栏的显示效果,有时甚至需要禁用状态栏。Android提供了setStatusBarDisable方法来实现禁用状态栏的功能。什么是状态栏状态栏是Android设备上显示系统状态信息的区域,通常位于屏幕的顶部。状态栏显示包......
  • ArkTS水果排行榜【代码可执行】
     #ArkTS水果排行榜>代码可执行>分为五个文件>1.FruitDataModel.ets定义app中需要的水果模型>2.TitleComponent.ets定义Title组件>3.TableHeaderComponent.ets定义表头组件>4.ItemComponent.ets定义列表项的子组件>5.Index.etsUI入口组件 FruitDa......
  • atkts 异同
      1.声明变量变量提升,后面声明前面也可以使用,不推荐使用,容易混乱var str='a'AlerDialog.show({message:str})推荐 let 声明变量2.  类型问题ts自带类型推断;  不推荐用声明时候,直接给出类型  letfood:string='a'letage:number=20classFo......
  • RTSP流截图并剔除花屏图片
    大致代码如下:importcv2importnumpyasnpfromfastapiimportHTTPExceptionRgbRangeType=tuple[tuple[int,int,int],tuple[int,int,int]]classValidationError(HTTPException):def__init__(self,detail:str,status_code=400)->None:supe......
  • 电力电子仿真工具——LTSpice
    LTSPICE的是ADI旗下一款免费的SPICE类仿真软件,有的时候,可以免费使用,对工程师、学生来说就是胜过千言万语的。SPICE型仿真和PLECS有点不同,它是由器件厂家用伪代码,可以理解为一些方程函数把它家的器件或者子系统的特性描述出来,封装成库函数给器件应用者,这样对于使用者来说,就可......
  • 开源:Taurus.DTS 微服务分布式任务框架,支持即时任务、延时任务、Cron表达式定时任务和
    前言:在发布完:开源:Taurus.DTC微服务分布式事务框架,支持.Net和.NetCore双系列版本,之后想想,好像除了事务外,感觉里面多了一个任务发布订阅的基础功能。本想既然都有了基础发布订阅功能了,那要不要顺带加上延时发布功能呢?加上了会不会让事务组件不纯了?经过一翻深思,是在其上补上......
  • tsx nodejs 增强支持执行typescript 以及esm
    tsx属于一个nodejs的增强包含的特性快速的按需ts以及esm编译支持commonjs以及esm包支持下一代ts扩展(.cts,.mts)隐藏体验特性警告tsrepl解析tsconfig.json适用的场景可以执行运行ts而不需要进行配置更好的与esm,cjs依赖交互说明tsx是一个不错的本地开发工具,可以方便不同模......