TS-Base

 比如你使用了一个联合类型,两个类型有同样的方法,如果你使用不同样的方法的时候就会报错,这个时候就需要使用类型断言来解决


 ***泛型?

给函数传递一个泛指的类型,定义的时候,不知道传什么,使用的时候传什么就是什么

function copyFields<T extends U, U>(target: T, source: U): T {
    for (let id in source) {
        target[id] = (<T>source)[id];
    }
    return target;
}

let x = { a: 1, b: 2, c: 3, d: 4 };

copyFields(x, { b: 10, d: 20, e :30 }); // 这样就会报错, 因为T继承了U, 所以U中有的,T一定要有

 

在类中如何使用泛型?


// public protected private
// public 允许在类的内外被调用
// private 允许在类内被调用
// protected  允许在类内及继承的子类中调用
class Person {
    // public name: string
    // private name: string
    protected name:string
    public say () {
        this.name = 'll'
        console.log('ll')
    }
}
class teach extends Person {   
    say() {
        this.name = 'ii'
    }
}
const p = new Person();
p.name = 'xx'
// 构造器
class Person {
    // public name: string
    // constructor() {
    //     this.name = name
    // }
    // 等价下边的代码
    constructor(public name: string) {}
}



class Person {
    constructor(public name:string) {}
}

class Teacher extends Person {
    constructor(public age: number) {
        super('ll') // 在使用继承的时候,需要调用super方法,同时还要传递响应的参数
    }
}
const t = new Teacher(28)
console.log(t.name)
console.log(t.age)

***TS命名空间?

提供一个类似模块化的区域,可以保护我们不需要对外暴漏的变量

 

TSC-W命令,使用TS监听模式,TS文件改了,就会触发更新、


Parcel打包TS代码?

引入:使用Parcel打包TS代码,这可能是学习TS阶段相对简单的打包工具-阿里云开发者社区


 ***全局类型文件?

比如引入jquery, 需要提供一种声明文件,让TS可以识别

declare

 


***代码的类型描述文件?

***泛型的keyOf?

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值