typescript需要java基础

typescript需要java基础泛型允许我们在定义函数 类或接口时 使用类型参数来表示未指定的类型 这些参数在具体使用时 才被指定具体的类型 泛型能让同一段代码适用于多种类型 同时仍然保持类型的安全性 举例 如下代码中 t 就是泛型 不一定非叫 T 设置泛型后即可在函数中使用 T 来表示该类型 function logData t data T T console log data t t

大家好,我是讯享网,很高兴认识大家。



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


举例:如下代码中<T>就是泛型,(不一定非叫T),设置泛型后即可在函数中使用T来表示该类型:

function logData<T>(data: T): T {


console.log(data)


return data


}



logData<number>(100)

typescript需要java基础

logData<string>('hello')


function logData<T, U>(data1: T, data2: U): T | U {


console.log(data1,data2)


return Date.now() % 2 ? data1 : data2


}



logData<number, string>(100, 'hello')


logData<string, boolean>('ok', false)


interface PersonInterface<T> {


name: string,


age: number,


extraInfo: T


}



let p1: PersonInterface<string>


let p2: PersonInterface<number>



p1 = { name: '张三', age: 18, extraInfo: '一个好人' }


p2 = { name: '李四', age: 18, extraInfo: 250 }


interface LengthInterface {


length: number


}



// 约束规则是:传入的类型T必须具有 length 属性

function logPerson<T extends LengthInterface>(data: T): void {


console.log(data.length)


}



logPerson<string>('hello')


// 报错:因为number不具备length属性

// logPerson<number>(100)

class Person<T> {


constructor(


public name: string,


public age: number,


public extraInfo: T


) { }


speak() {


console.log(`我叫${this.name}今年${this.age}岁了`)


console.log(this.extraInfo)


}


}



// 测试代码1

const p1 = new Person<number>("tom", 30, 250);



// 测试代码2

type JobInfo = {


title: string;


company: string;


}


const p2 = new Person<JobInfo>("tom", 30, { title: '研发总监', company: '发发发科技公司' });



类型声明文件

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


export function add(a, b) {


return a + b;


}



export function mul(a, b) {


return a * b;


}



declare function add(a: number, b: number): number;


declare function mul(a: number, b: number): number;



export { add, mul };


// example.ts


import { add, mul } from "https://www.jinpeng.work/demo.js";



const x = add(2, 3); // x 类型为 number


const y = mul(4, 5); // y 类型为 number



console.log(x,y)



本文地址:https://www.jinpeng.work/?id=226
小讯
上一篇 2024-12-24 12:58
下一篇 2024-12-25 12:42

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/9341.html