• typescript对类型的管理和查找规则


    1 .d.ts文件

    它是用来做类型的声明(declare)。 它仅仅用来做类型检测,告知typescript我们有哪
    些类型

    2.typescript的类型声明查找规则?

    • 内置类型声明;
    • 外部定义类型声明;
    • 自己定义类型声明;

    2.1 内置类型声明

    • 内置类型声明通常在我们安装typescript的环境中会带有的
    • 内置类型声明是typescript自带的、帮助我们内置了JavaScript运行时的一些标准化API的声明文件; 包括比如Math、Date等内置类型,也包括DOM API,比如Window、Document等;
    https://github.com/microsoft/TypeScript/tree/main/lib

    2.2 外部定义类型声明

    • 外部类型声明通常是我们使用一些库(比如第三方库)时,有些库中自带.d.ts类型声明文件文件,这就是外部声明的类型声明文件。
    • 有些库没有,需要我们手动添加,手动添加的就是内部声明文件。

    2.3 自己定义类型声明

    什么情况下需要自己来定义声明文件呢?
    • 情况一:我们使用的第三方库是一个纯的JavaScript库,没有对应的声明文件;比如lodash
    • 我们给自己的代码中声明一些类型,方便在其他地方直接进行使用
      这些库通常有两种类型声明方式:
    • 方式一:在自己库中进行类型声明(编写.d.ts文件),比如axios
    • 方式二:通过社区的一个公有库DefinitelyTyped存放类型声明文件
    该库的GitHub地址: https://github.com/DefinitelyTyped/DefinitelyTyped/
    该库查找声明安装方式的地址: https://www.typescriptlang.org/dt/search?search=
    比如我们安装react的类型声明: npm i @types/react --save-dev

    3.怎么进行类型声明

    使用declare关键字

    3.1 声明变量,函数和类类型

    和声明一个变量类型,只是不给出具体的值,但是要指定类型

    1. declare let name: string
    2. declare let age: number
    3. declare function(name: string, age: number) :viod
    4. declare class Person {
    5. name: string
    6. age: number
    7. constructor(name: string, age: number)
    8. }

    3.2声明模块

    declare module '模块名' {}。
    在声明模块的内部,我们可以通过 export 导出对应库的类、函数等;

     

    1. declare module lodash {
    2. export function(p: any[]){}: any
    3. }

    3.3 声明文件

    当我们在ts中引入图片或者.vue文件时,ts不能识别这种类型,因此可以对这些文件进行类型声明

    1. declare module '*.jpg'
    2. declare module '*.vue'

  • 相关阅读:
    P2483-[模板]k短路/[SDOI2010]魔法猪学院【主席树,堆】
    LeetCode-19. Remove Nth Node From End of List [C++][Java]
    【卫朋】产品管理:如何管理项目进度?
    基础Python教程之pandas使用总结
    [附源码]计算机毕业设计JAVAjsp求职招聘平台开发
    WIN10 python安装并执行脚本
    面向对象之抽象类的认识 - (java语法)
    计算机毕业设计springboot驾校管理系统o2ehg源码+系统+程序+lw文档+部署
    three图形控制页面
    双十一买哪款电容笔好?高性价比电容笔品牌排行榜
  • 原文地址:https://blog.csdn.net/ICanWin_lll/article/details/126162554