Angular 如何使用第三方库
Angular 的组件与模块看似好像与现有各种第三方类库(例如: 以下我将从另一个视角解释 Angular 如何使用第三方类库的一种经验做法。 一、写在前面在开始之前,需要先了解一下 TypeScript 模块系统 ——模块是指在其自身作用域里执行,而不是在全局作用域里;模块间是依靠 TypeScript 依然还是以 JavaScript 文件的形式发布类库,这会导致类型无法表述,需要配合声明文件对其进行类型描述;因此声明文件成了类库一个必不可少的组成部分。 二、分类Angular 使用 TypeScript 语言开发,诚如上一小节讲来说,要想让一个类库被运用,要件是有没有声明文件。 有声明文件要分清类库是否有声明文件 1、类库自带 从 Npm 安装一个依赖包后,可以直接检查其库的 "typings": "./moment.d.ts" 2、TypeSearch检索 TypeScript 提供了一个叫 TypeSearch 网站,可以直接输入关键词检查是否包含该类库的声明文件。 例如 npm install --save @types/lodash 无声明文件这类情况还蛮常见,例如早一点时间 Angular Cli 创建的项目会包含一个 一般而言自己很难对一个类库写一个完整的声明文件,这对于成本来说太不合算,因此往往都是只对部分全局对象做一个 // src/typings.d.ts declare var G2: any; 三、如何使用?声明文件是纽带,依然以这种方式来划分如何使用。 对于有声明文件,无需额外做什么,只需在需要模块的地方使用 import * as moment from 'moment'; moment(); // 当前时间 无声明文件重要来看无声明文件时怎么做,前面说到使用 像 // app.component.ts const g2 = new G2(); g2. // 输入 `.` 后是不会有任何方法或属性 除此之外 TypeScript 编译过程中也不会对 // .angular-cli.json "scripts": [ "../node_modules/@antv/g2/dist/g2.min.js" ] TypeScript 编译后依然还是 JavaScript 代码,假如不手动加载 总结从 TypeScript 的视角来看如何使用第三方类库,会有不同的感觉,只是一个简单的非靠谱但有效的描述。希望懂得多的人手下留情。 这里无意黑 (完) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |