zoukankan      html  css  js  c++  java
  • ts笔记-类型声明

    全局类型声明

    对于使用js编写的第三方库,通常可以在DefinitelyTyped中找到types包,比如jQuery。

    npm install @types/jquery --save-dev
    

    使用

    // 即使没有手动引入,全局也都拥有类型提示
    $.ajax()
    

    原因:默认所有可见的"@types"包会在编译过程中被包含进来。 node_modules/@types文件夹下以及它们子文件夹下的所有包都是可见的; 也就是说, ./node_modules/@types/,../node_modules/@types/和../../node_modules/@types/等等。

    如何手动管理types包

    如果想要手动指定加载包,可以配置types选项,指定加载哪些包

    {
       "compilerOptions": {
            "types" : [] // 如果配置为[],上面的$就没有提示了。改为["jquery"],就又拥有提示了
       }
    }
    

    自定义声明

    如果想要为自己写的js库添加声明文件也很简单,在tsconfig的同级目录创建一个@types文件夹,根据上面说的types加载机制,@types目录下的包是可以自动加载进来的。但需要注意的是这里的类型声明是全局的,比如:

    // @types/bar.d.ts 定义一个接口
    
    interface Point {
        x: number,
        y: number
      }
    
    // @types/bar.d.ts 声明一个全局变量
    declare let point:Point
    
    // 其他任何ts文件都有提示
    const name1: Point = {
        x: 100
        y: 300
    }
    
    

    说明:根级别的声明都必须以 declare 关键字作为前缀,例如变量point

    说明:对于这些影响全局的声明,通常建议放到一个统一文件中,比如global.d.ts。如果仅供某个文件使用,可以在ts文件中定义声明。

    常用网站: SegmentFault | GitHub | 掘金社区
  • 相关阅读:
    Repeater嵌套Repeater的结构
    解决还原数据库 出现单用户
    常见的一些C#开源框架或者开源项目
    vue 实现动态路由
    c#使用Split分割换行符
    SQL Server 时间戳与时间格式互相转换
    值与枚举的转化
    编程之美,让美国人科技高速发展,浅谈C语言带给美国的变化
    SQL CE数据库搭建和操作
    C# 与API
  • 原文地址:https://www.cnblogs.com/yesyes/p/15408255.html
Copyright © 2011-2022 走看看