一、基本使用
1、interface 接口用来声明一个注解
interface Person {
firstName: string;
lastName: string;
}
2、枚举类型【enum】
const dianji =()=>{
enum Status {
Red = '结婚了',
Blue = '没结婚',
Pink = '离婚了',
}
let a: Status = Status.Red
let b: Status = Status.Blue
let c: Status = Status.Pink
console.log(a)
console.log(b)
console.log(c)
}
二、装饰器 【两种写法:普通写法(无法传参)、工厂写法(可以传参)】
1、类装饰器
function logClass(params:string) {
return function(target:any){
console.log(params) //传入的参数
console.log(target) //类对象本身
}
}
@logClass('参数')
class HttpClict {
constructor() {
}
getData(){
console.log(111)
}
}
2、属性装饰器
function logClass(params:string) {
return function(target:any,attr:any){
console.log(params) //传入的参数
console.log(target) //实例化对象
console.log(attr) //传入的属性名
}
}
class HttpClict {
@logClass('参数')
username:string='我的名字'
constructor() {
}
getData(){
console.log(111)
}
}
3、方法装饰器
function logClass(params:string) {
return function(target:any,methodName:any,desc:any){
console.log(params) //传入的参数
console.log(target) //实例化对象
console.log(methodName) //方法名字
console.log(desc.value) //真正的方法
}
}
class HttpClict {
constructor() {
}
@logClass('参数')
getData(){
console.log(111)
}
}
4、参数装饰器
function logClass(params:string) {
return function(target:any,methodName:any,paramsIndex:any){
console.log(target) //构造函数
console.log(methodName) //方法名称
console.log(paramsIndex) //方法描述
console.log(params) //传入参数
}
}
class HttpClict {
constructor() {
}
getData(@logClass('小罗') uuid:any):void{
console.log(uuid)
}
}
let f:any = new HttpClict()
f.getData(50)
ts用法?
最新推荐文章于 2024-07-23 11:32:13 发布