TypeScript基础知识(7) 泛型 类型声明

TypeScript 泛型

泛型简单来讲就是在声明这个函数时我们不去指定具体的类型,等到我们在调用的时候再去传递具体的类型。

function createNumberArray(length:number,value:number):number[]{
   const arr = Array<number>(length).fill(value)//比如Array就是一个泛型类,在ts内部定义时他不知道我们要传递什么参数所以它使用泛型参数,number就是我们所指定的
   return arr
}
const res = createNumberArray(3,100)//res=>[100,100,100]

但是如果我们想要传入string类型的数据,下面是比较笨的方法

function createNumberArray(length:number,value:number):number[]{
   const arr = Array<number>(length).fill(value)
   return arr
}
function createStringArray(length:number,value:string):string[]{
    const arr = Array<string>(length).fill(value)
    return arr
 }

再创建一个会显得代码比较冗余,比较好的方法是使用泛型,把类型变成参数,然后调用的时候再去使用使用这个类型

function createArray<T>(length:number,value:T):T[]{
    const arr = Array<T>(length).fill(value)
    return arr
}
const res = createArray<string>(3,'100')//res=>['100','100','100']

我们把这里不确定类型的变成参数,一般用大写T

any和泛型的区别

any[]和number都是数据类型,any[]表示什么都能装,泛型表示装的时候类型才确定。

类型声明

有时我们开发项目会用到第三方模块,第三方模块不一定是用TypeScript编写的,就不会有强类型的体验
我们可以下载一个模块

yarn add lodash

在ts文件中类型声明

import {} from ‘lodash’

具体可以自行查询官方文档

你可能感兴趣的:(TpyeScript,typescript,javascript,前端)