Javascript

【备战春招】第13天 nest js ts

本文主要是介绍【备战春招】第13天 nest js ts,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

课程名称:NestJS 入门到实战 前端必学服务端新趋势


课程章节: 第1章


课程讲师:Brian


课程内容



https://img1.sycdn.imooc.com/63f2bd580001925a08690222.jpg

https://img4.sycdn.imooc.com/63f2bd5b0001326c07990106.jpg

泛型的常用方式 

const pushArr = <T>(arr: T[], item: T):T[] =>{
  arr.push(item)
  return arr
}

const arrNum: number[] = [1,2,3,4]

// pushArr<number>(arrNum,3)
// 你定义了什么类型 就 替换T
console.log(pushArr<number>(arrNum,3))
// 用泛型 交换位置
function swapGeneric<T, U>(tuple: [T, U]): [U, T]{
  return [tuple[1], tuple[0]]
}

const res = swapGeneric<string, number>(['123',123])

console.log(res)


写一个函数,这个函数会返回任何传入的值。

eg:不用泛型的话,这个函数可能是下面这样:

function identity(arg: number): number {
    return arg;
}


如果我们要编写框架,就要考虑到各种返回值的情况,于是可能就会有这样的代码:

type idBoolean = (arg: boolean) => boolean;
type idNumber = (arg: number) => number;
type idString = (arg: string) => string;


有些小伙伴可能会说,我们可以使用any类型来定义函数:

function identity(arg: any): any {
    return arg;
}

使用any类型会导致这个函数可以接收任何类型的arg参数,这样就丢失了一些信息:传入的类型与返回的类型应该是相同的。

function identity<T>(arg: T): T {
    return arg;
}

我们给identity添加了类型变量T。 T帮助我们捕获用户传入的类型(比如:number),之后我们就可以使用这个类型。

identity<string>('hello');

https://img1.sycdn.imooc.com/63f2be2e0001ac0111310619.jpg



















这篇关于【备战春招】第13天 nest js ts的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!