TS声明文件

  • 使用ts进行开发的时候,不可避免的需要引用第三方的 JS 的库,但是默认情况下TS是不认识我们引入的这些JS库的。所以在使用这些JS库的时候, 我们就要通过声明文件告诉TS它是什么, 怎么用。

一、声明文件的使用

一)、声明的定义与使用在同一文件中
  • html文件中
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>TypeScript核心</title>
</head>
<body>
	<div class="main"></div>
	<script src="lib/jquery-1.12.4.js"></script>
</body>
</html>
  • ts文件中
declare const $:(selector:string) => {
    width():number;
    height():number;
    ajax(url:string, config:{}):void
}
console.log($);
// $.ajax();
console.log($('.main').width());
console.log($('.main').height());
二)、声明的定义与使用不放在同一文件

ts不推荐将声明的定义和使用放在一个文件中。推荐将定义写在一个单独的文件中。

  • 注意:默认情况下ts会查找当前项目中的所有ts文件和所有.d.ts文件【也就是说找到了声明文件】。此配置可以在tsconfig.json文件中配置include属性

案例:在ts文件中,使用外部的.js文件,需要先写.js文件的声明文件。案例如下:

  • html文件:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>TypeScript核心</title>
</head>
<body>
<div class="main"></div>
	<script src="./lib/declareTest.js"></script>
</body>
</html>
  • 外部的js文件:declareTest.js
// 变量
let myName = 'gege'
// 函数
function say(name, age) {
    console.log(`name is ${name}, age is ${age}`);
}
// 类
class Person {
    name = '123';
    age = 12
    constructor(name, age) {
        this.name = name;
        this.age = age
    }
    say(){
        console.log(`name is ${name}, age is ${age}`);
    }
}
  • ts声明文件:declareTest.d.ts【declareTest的声明文件】
declare let myName:string // 说明myName是个类型为string的变量
declare function say(name:string, age:number):void; // 声明中不能有实现
// 注意点:声明中不能出现实现,只能有声明
declare class Person {
    name: string;
    age: number;
    constructor(name:string, age:number) {};
    say():void;
}
  • ts文件:13.2、TypeScript-声明文件.ts【通过d.ts文件,使用外部的js】
import say = Validation.say;
console.log(myName);
say('gege', 18);
let p = new Person('zz', 3)
p.say()

二、声明文件的安装:

声明文件有很多种。

1. 全局库:

所有功能绑定到全局变量或全局对象上,参照https://www.typescriptlang.org/docs/handbook/declaration-files/by-example.html中的模板(见下方列表),自行编写声明文件

  • Global .d.ts
  • Global-plugin .d.ts
  • Global: Modifying Module .d.ts
2. cmd md【可以通过require、import导入】:

参照https://www.typescriptlang.org/docs/handbook/declaration-files/by-example.html中的模板(见下方列表),自行编写声明文件

  • Modules .d.ts
  • Module: Plugin
  • Module: Class
  • Module: Function
3. 常用的第三方库,

对于常用的第三方库,其实已经有大神帮我们编写好了对应的声明文件,所以在企业开发中,如果我们需要使用一些第三方JS库的时候,我们只需要安装别人写好的声明文件即可。

  • TS声明文件安装规范:@types/xxx
  • 例如:想要安装jQuery的声明文件,那么只需要:
    a. 【cmd中安装需要调用的库】:npm install jquery
    b. 【引用文件(13.3、TypeScript-声明安装)中导入】import jQuery = require(‘jquery’)
    c. 【cmd中安装声明文件】:install @types/jquery
    d. TS文件中使用jQuery文件
    		import jQuery = require('jquery')
    		jQuery().width() // 未安装声明文件的话,jQuery中的方法不会有自动提示
    
4. 注意点:对于3中的常用库,他人写了声明文件的可以安装声明文件进行调用,对于没有写的需要使用1、2中的声明模板自己编写。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值