TypeScript学习

helloword

function hello() {
    console.log('helloword');
}
hello();

编译:tsc hello.ts

Ts中的数据类型

基本类型

let isDone:boolean =false;//布尔型

let num:number=10;//数值类型

let str:string="123"  //字符串定义

function  abc():void{//空值void,定义函数不返回任何内容
      console.log("void")
}

let u:undefined=undefined;//undefined
let n:null=null;
//以上不可在二次赋值时更改类型

//any可以更改
let x:any='123';
x={}
let s:any;
s=123;
s="123"

数组类型

需要遵循数组定义的类型
在这里插入图片描述

let arr:number[]=[1,2,3,4]//数组类型
// 数组泛型的写法
let arr1:Array<number>=[1,2,34,5]

//接口定义数组
interface NumberArray{
    [index:number]:number
}

let arr2:NumberArray=[1,2,3,4,5]

类型推断

在这里插入图片描述
此时star已经被推断为string类型不可再更改
在这里插入图片描述在这里插入图片描述
但undefined可以被重新赋为任意类型

联合类型

//联合类型可以是多种类型
let url:string|number='123'
url=123;

接口定义

//可以对对象有限制
interface Person{
    name:string;
    age:number;
};

//这两个属性不可缺少,且类型不可变
let tom:Person={
    name:'TOM',
    age:18
};


interface Animal{
    name:string;
    age:number;
    eat?:string;//可选属性
}

let dog:Animal={
    name:'lili',
    age:5
}


interface Animal2{
    name:string;
    age:number;
    [eat:string]:any;//任意属性
}

let dog2:Animal2={
    name:'lili',
    age:5,
    eat:22
}


函数

function sum1(x:number,y:number):number {
    return x+y;
    
}

sum1(1,2);
sum1('1',2)//报错

let sum2=function(x:number,y:number):number {
    return x+y;
}

//箭头函数
let sum3=(x:number,y:number):number=> {
    return x+y;
}

类型别名

type ylstring=string;
let username:ylstring='123'

type yltype=string|number|boolean;
let user1:yltype='hahaha';
user1=true;

type eventname="click"|"mousemove"|"moousedown"

let e1:eventname="click"

枚举类型

enum Days{sun,mon,tue,wed}
console.log(Days['sun']) //0
console.log(Days[0])//sun

let day:Days=Days.sun;

class Person{
    public username;
    public constructor(name){
          this.username=name;
    }

}

let p:Person=new Person("TOM");
p.username="hahah"

class Person2{
    private username;
    public constructor(name){
        this.username=name;
    }
    public sayname(){
        return username;
    }
}


class Person3{
    protected username;//可在子类中访问
    public constructor(name){
        this.username=name;
    }
}

class someone extends Person3{
    constructor(name){
        super(name);
        let username=this.username;
    }
}

泛型

//泛型
function creatArray<T>(length:number,value:T):Array<T> {
    let result:T[]=[];
    for(let i=0;i<length;i++){
        result[i]=value;
    }
    return result;
    
}

function creatArray1<T,U>(length:number,value1:T,value2:U):Array<T|U>{
    let result1:T[]=[];
    let result2:U[]=[];
    for(let i=0;i<length;i++){
        result1[i]=value1;
    }
    return result1;
}

interface CreateArray{
    <T>(length:number,value:T):Array<T>;
}

let createarray1:CreateArray=function <T>(length:number,value:T):Array<T> {
    let result:T[]=[];
    for(let i=0;i<length;i++){
        result[i]=value;
    }
    return result;
}


class Generic<T>{
    zerovalue:T;
    res(x:T,Y:T){
        console.log(x);
        return 0;
    }
}
let numberobj=new Generic<number>();
numberobj.res(1,2);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值