ts-泛型&类型声明文件

泛型

泛型允许我们在定义函数、类或接⼝时,使⽤类型参数来表示未指定的类型,这些参数在具体 使⽤时,才被指定具体的类型,泛型能让同⼀段代码适⽤于多种类型,同时仍然保持类型的安全性

泛型函数
// 设置泛型使用<T>,T是自定义名称,在函数中使用T表示该类型
function user<T>(data:T):T{
    return data
}

// 可以设置多个泛型,返回值可以是T或者U类型
function  info<T,U>(a:T,b:U): T | U{
    return  a
}


// 设置泛型为string
user<string>("a")


info<string,number>("a",1)
泛型接口
interface UserInterface<T>{
    name:T,
    age:number
}


// 设置接口的T泛型为string
let user:UserInterface<string>


user = {name:"1",age:2}
泛型约束
// 自定义一个接口,其中有name属性
interface UserInterface{
    name:string
}



// 设置的泛型T继承自UserInterface接口, 即传入的类型T,必须具有name属性,且是string
function info<T extends UserInterface>(data:T):void{
    console.log(data.name)
}



let user = {name:"1"}
info(user)
泛型类
class  User<T>{
    constructor(public name:T) {
    }
}

const user = new User<string>("1")
类型声明文件

类型声明⽂件是 TypeScript 中的⼀种特殊⽂件,通常以 .d.ts 作为扩展名。它的主要作⽤ 是为现有的 JavaScript 代码提供类型信息,使得 TypeScript 能够在使⽤这些 JavaScript 库 或模块时进⾏类型检查和提示

// js文件
// export用于将模块中的变量、函数、类等内容暴露(提供)给其他模块使用
// 这是现代 JavaScript 模块化编程的重要组成部分
// 它使得代码可以被组织成独立的模块,每个模块有自己的作用域,并且可以选择性地向外共享内容

export  function count(a,b){
    return a*b
}
// .d.ts文件

// 使用declare声明的内容只是告诉 TypeScript 编译器某个变量、函数或模块的存在和结构,但不会在运行时产生实际的代码。
// 所以在运行时这些声明的内容确实存在,否则可能会导致运行时错误

// 声明函数,告诉ts有这个函数
declare  function  count(a:number,b:number):number

declare  function print(a:number,b:number):void


// 将count,print暴露出去
export {count,print}
// ts文件

// 导入b.d.ts中的count和print
import {count, print} from "./b";
count(1,2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值