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文件中定义声明。

posted @   wmui  阅读(354)  评论(0编辑  收藏  举报
编辑推荐:
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
阅读排行:
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现
点击右上角即可分享
微信分享提示