ts typescript - setup helloworld datatype interface type T extends class abstract implements

typescript ≈ javascript plus

🔗setup

npm install typescript -g

在这里插入图片描述

tsc -version
npm install ts-node -g

🖌️hello world

let str = "hi"
console.log(str);
ts-node t.ts

🖋️datatype

let a1 :string ='abc'
let a2:number = 2
let a3 :boolean =true
let nu:null =null
let un:undefined = undefined
let a4:string|null  = null
let a5:1|2|3 = 2

any

let a:any
a= 1
a="1"
a=true

strong type

let a:string  = "123"

a=1 

Err
在这里插入图片描述

let a:unknown
a= 1
a="1"
a=true

let b :String 
if(typeof a =="string")
{
    b=a 
}

enum 枚举

enum Color { RED,BLUE,BLACK}
let color = Color.BLACK; //Color[2]
console.log(color);
ts-node t.ts

在这里插入图片描述

or to js

tsc t.ts 

to see t.js
在这里插入图片描述

Array



let arr :number[] = [1,2,3]
let arr2 :Array<string> = ['a','b']

元组

let arr:[String,number,boolean] =["123",1,true]

let a1 :[number,string,number?] = [1,"11"]

🖊️function

function myFn(a:number,b:string,c?:boolean,...rest:number[]) :number
{

    return  100
}

const f = myFn(10,'123',true,1,2,3)

✒️interface

interface Obj{

    name :string,
    age:number

}

const obj:Obj={
    name:'a',
    age:15
}

📏type

let a: String |number = 10 

type myname = string |number
let b:myname = 10
let b2:myname = "10"

📐T 泛型

function myFn<T>(a:T,b:T):T[]{
    return [a,b]
}

myFn<number>(1,2)

myFn('a','b')

📎extends

interface  Parent{
    p1 :string 
    p2:number 
}

interface Child extends  Parent
{
    p3:string
}

const v1 :Child=
{
    p1 :"123",
    p2:1,
    p3:"12"

}

🔧class


class Article
{
   public title:string
    con:string
    temp1?:string
    tempnum= 100

    private temp2 ?:string 
    protected temp3?:string 
    static a1 :string 
    static readonly a2 :string ='a2st'


    constructor (title:string,con:string)
    {
        this.title=title
        this.con=con
    }

}

const a1 =new  Article('t1','con1')



class B extends Article
{
  constructor (title:string ,con:string)
  {
    super(title,con)
    this.temp3="1"
  }

}


class User{

    private _password :string =''
    get password():string{
        return '****'
    }
    set password (newPass:string)
    {
        this._password = newPass
    }
}

const u1  = new   User()

console.log(u1.password)

🪛abstract


abstract class Animal{

    abstract name:string
    abstract makeSound():void
    move():void
    {
        console.log('mmm')
    }
}

class Cat extends Animal{

    name:string='miao'
    makeSound(): void {
        console.log("miaomiao")
    }
}


class Dog extends Animal{

    name:string='wang'
    makeSound(): void {
        console.log("wangwang")
    }
}

🧲implements

interface Animal{
    name:string
    get sound():string
    makesound():void

}

interface AgeI{
    age:number
}


class Dog implements Animal,AgeI{
    name: string = 'wang'
    age:number = 2
    get sound(){
        return ''
    }
    makesound(): void {
        
    }

}
  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值