TypeScript基础语法

本文介绍了TypeScript的基础概念,包括变量声明、基本数据类型、数组、枚举、元祖等,并深入探讨了接口、类、泛型等高级特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//string

let str:string="wc"

 

//数字类型

let numb:number=1

 

//布尔

let bool:boolean=false

 

//数组类型

let arr:number[]=[1,2,3,4]

// let arr2:[]number=[1,2,3] 不支持,和java有区别

 

//枚举

enum Weeks{Mon,Tue,Wed}

let day=Weeks.Mon;

console.log(day) //0

console.log(Weeks[0]) //Mon

console.log(Weeks["Mon"]) //0

 

//any任意类型

let anye:any=new Array();

anye=2

 

//undefined,null

let def:undefined=undefined

 

//联合类型

let wc:number |string |boolean

 

//元祖 来自于C#

let ele:[string,number]=["sb",19]

 

//类型推论

let ww=3 //number

let mm; //any

 

//类型断言

let dsw:number|string|boolean="this sssjsj"

let strlen:number=dsw.length

strlen=(<string>dsw).length //有泛型的意思

strlen=(dsw as string).length

 

//接口 行为的抽象,只是定义一个规范并不实现

// 一定义接口

interface Animal {

Eat(food:string):string; //定义一个接口方法,具体的实现需要实现接口 体现多态的根源

}

interface Sleep {

wok(food:string):string; //定义一个接口方法,具体的实现需要实现接口 体现多态的根源

}

//实现,需要实现所有方法,否则是抽象类,接口可以多继承

class People implements Animal,Sleep{

Eat(food:string):string{

return "肉" +food;

}

wok(food:string):string{

return "睡觉"

}

 

}

let p=new People();

console.log(p.Eat("主"));

 

//接口二多函数的约束

interface CheckFunction{

(a:string,b:number):boolean

}

let func:CheckFunction=(str:string,num:number)=> false;

 

//接口三多数组的约束

interface CheckArray {

[index:number]:String

}

 

let arr2:CheckArray=["222","22","1"]

 

//接口四多json的约束

interface CheckJson{

name:string,

readonly age:number, //只读属性

sex?:string //可选属性

}

function showJson(n:CheckJson){

console.log(JSON.stringify(n))

}

showJson({name:"李洋",age:24})

 

//类的定义 public 公共的,private 私有的 protected 受保护的,只能在子类和内部访问

class Person{

name:string;

age:number;

constructor(name:string,age:number){

this.name=name;

this.age=age;

}

pint():string{

return this.name+":"+this.age;

}

}

let ppd=new Person("ppd",35);

console.log(ppd.pint())

 

//类的继承

class Student extends Person {

static em="wu";//静态属性

school:string;

constructor(name:string,age:number,school:string){

super(name,age);

this.school=school;

}

pint():string{ //多态的具体实现

return this.name+":"+this.age+":"+this.school;

}

static funccc(){//静态方法

 

}

}

let ppd2=new Student("ppd",35,"神大");

console.log(ppd2.pint())

 

// js静态方法/属性

// function Funcc(){

// //实例属性

// this.name="jj";

// //实例方法

// this.pint(){

// }

// }

// Funcc.age=19;//静态属性

// Funcc.pint2=()=>{} //静态方法

 

//抽象类/抽象方法

//1:抽象类是提供其他继承的基类,不能被实例化

//2:抽象方法只能包含在抽象类中,抽象类包含抽象方法和非抽象方法

//3:子类继承抽象类,实现抽象方法

abstract class Workenr{

abstract eat():string;

run(){

console.log("1")

}

}


 

//函数定义

function addp(x,y):number{

return x+y;

}

//匿名函数

let show=(a,b):number=>a+b;

 

function add3(a:number,b:number):number{

return a+b;

}

function add4(a:string,b:number=20,c?:string):string{ //默认 和 可选 参数

return a+b;

}

console.log(add4("wc"))

//剩余参数

function spadd(a:number,b:number,...arr:number[]):number{

var sum=arr.reduce((pre,cur)=>pre+cur)

return a+b+sum;

}

console.log(spadd(1,2,3,4,5,6));

 

//函数重载

function getInfo(name:string):void;

function getInfo(age:number):void;

function getInfo(str:any):void{

if(typeof str==="string"){

console.log(1)

}else if(typeof str==="number"){

console.log(2)

}

}

getInfo("sssskk")

 

//泛型函数

function pintnum<T>(arr:T[]):void{

for(var v of arr){

console.log(v)

}

}

pintnum<string>(["wu","li","sb"])

pintnum<number>([1,2,3,4])

 

//泛型类

class MyArray<T>{

public name:T;

public list:T[]=[]

add3(v:T):void{

this.list.push(v)

}

}

var arr6=new MyArray<number>();

arr6.add3(1);

console.log(arr6.list)

 

//泛型接口

interface Iadd<T>{

(x:T,a:string):void;

}

var add8:Iadd<number>=(a:number,y:string):void{

console.log(a,y);

}

console.log(add8(5,"sd"))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值