【九月打卡】第5天 TS的面向对象
标签:
Typescript
第一板块:两小时极速入门TypeScript,4-1;4-2;4-3;4-4;4-5;4-6;4-7,阿莱克斯刘
第二板块:
object类型
const person:{
name:string,
age:number,
}={
name:"黎明",
age:123,
}
// person的类型就是他自己
console.log(person.yearsold);
// 注意:当我们调用一个没有被定义的变量时在原生js中是不会报错的,但是ts中会报错。2.interface
interface IPoint{
x:number,
y:number
}
function drawPoint(point:IPoint){
console.log(point.x,point.y)
}
drawPoint({x:105,y:456.65})3.class和Access Modifier 访问修饰符
public(公有);private(私有);
setter和getter简单来说就是把class的私有属性
interface IPoint{
drawPoint:()=>void;
getDistances:(p:IPoint)=>void;
getX:()=>void;
setX(value:any)=>void;
}
class Point implements IPoint{
x:number;
y:number;
// 构造函数(才可以通过实例把值传进来)
// public 修饰符
constructor(public x:number,public y:number){
this.x=x;
this.y=y;
}
drawPoint=()=>{
console.log('x:'this.x,'y:'this.y);
}
getDistances=(p:IPoint)=>{
return Math.pow(p.x-this.x,2)+Math.pow(p.y-this.y,2)
}
setX=(value:number)=>{
if(value<=0){
throw new error(;value不能小于等于0;)
}
this.x=value;
}
getX=(value:number)=>{
return this.x;
}
}
}
const point=new Point(2,3);//对象object,实例instance
point.drawPoint()
point.setX(10);
console.log(point.setX());4.module
// 开发中我们不希望把代码都写到一个文件中,那么就需要我们的module了。
如何做为模块单独导出类呢?只需要在类前面加export就可以了
export class Point implements IPonit{
}
在需要这个模块的文件中导入
improt Point form ‘./point’;5.Generice泛型(T表示泛型)
let arr:string[]=['1','2'];
let arr2:Array<number>=[1,2,3,4,5];
let lastInArr=<T>(arr:Array<T[]>)=>{
console.log(arr[arr.length-1])
}
const last1=lastInArr([1,2,3,4,5,6])
// 通过使用泛型,可以明确的指定类型
// 使用多个泛型的时候括号中使用逗号隔开(二选一)
let markTulp=<T,K>(x:T,y)=>[x,y];
const last2=lastInArr<boolean,number>(true,1)
let markTulp=<T=boolean,K=number>(x:T,y:K)=>[x,y];
const last3=lastInArr(true,1)第三板块:
课程总结:
TS的基础理论知识
TS的编译原理
TS的类型(12中类型,boolean,number,string,array,元组,枚举,any,void,null,undefined,never,onject),还有高级拓展:联合类型,字面量类型
类型断言
函数类型
Ts的面对对象(class类 ,Interface接口类型,访问修饰符,泛型)
学习过程:查看学习文档,代码练习。
第四板块:
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
