前置知识
<h1>前置知识</h1>
<p>要想学习好编写插件,<strong>第一步</strong>应有</p>
<ul>
<li>基础的 TypeScript 知识</li>
<li>理解 npm 模块并学会使用</li>
</ul>
<p><strong>⚠️ 注意</strong>:前置知识很重要!不牢固将影响插件的开发!</p>
<p>> 接下来,将对前置知识进行<透析></p>
<h2>TypeScript</h2>
<p>想必你已经知道,<a href="https://kivi.dogxi.top/develop/before.html#">Kivibot 框架</a>基于 <a href="https://kivi.dogxi.top/develop/before.html#">node.js</a>,那 node.js 与 TypeScript 有什么区别呢?</p>
<ul>
<li>第一,node.js 是平台,TypeScript 是编程语言的超集</li>
<li>第二,TypeScript 在编译后生成 JavaScript,可以在浏览器和 node.js 中运行。</li>
</ul>
<p><strong>了解区别后,我们接下来学习 TypeScript 这门编程语言:</strong> </p>
<ul>
<li>如果你只是<strong>基础开发</strong>,你可以选择<strong>下列教程</strong>:<br />
xxx<br />
不自己提供了,推荐看阮一峰的 JavaScript 和 TypeScript 教程,好像也可以只看 TypeScript 教程</li>
</ul>
<p>typescript</p>
<pre><code>//巩固对象知识
//TypeScript 中的所有事物都是对象:字符串、数值、数组、函数...
//对象拥有`属性`和`方法`,访问对象需要用到`.`,下面演示String对象:
let a: string = &quot;Hello KiviBot!&quot;;
//那么a.length == 15,length即为a的属性
//那么a.slice(1) == &#039;ello KiviBot!&#039;,slice()即为a的方法/函数</code></pre>
<h2>npm 模块</h2>
<p>npm(“Node 包管理器”)是 JavaScript 运行时 Node.js 的默认<strong>程序包(模块)管理器</strong>。<br />
你可以把 npm 理解为一个存储很多模块(软件包)的仓库。</p>
<p>> <strong>npm 组成</strong>:
>
> <em> <a href="https://www.npmjs.com/">npm 官网</a>(发布和搜索模块的网站)
> </em> 注册表(巨大的数据库)
> * 命令行工具/终端 npm 模块的实质是将代码 <code>模块化</code>,使用模块可以<strong>简化你的操作,直接实现某些功能。</strong></p>
<p>例如我开发了一个 “吃饭” 模块并上传到了<a href="https://www.npmjs.com/">npm 官网</a>,你若想要使用模块,需要用<strong>命令行工具/终端</strong> 输入:</p>
<p>bash</p>
<pre><code>npm i -D 吃饭</code></pre>
<ul>
<li>这里的<code>npm</code>是必须要带的,因为你使用的是 npm 管理器。</li>
<li><code>i</code>是 install 的缩写,意为安装。</li>
<li><code>-D</code> 指的是开发环境安装(你也可以不输入),<code>-g</code> 是全局安装,正如你安装 kivibot 框架(模块),其中的命令就包含了 <code>-g</code> 。</li>
</ul>
<p>输入后,npm 模块会被安装在当前目录下的 node_modules 目录下,如 KiviBot 框架下就有该目录,里面有内置的模块,例如 <code>oicq</code>,<code>axios</code> 等。</p>
<p>最后就需要在 ts 文件里引入(import)了,它通常放在文件的开头:</p>
<p>typescript</p>
<pre><code>import eat from &quot;吃饭&quot;;
//这只是 ES 模块的引入方式,其他的可自行搜索
//接下来便可以通过 eat,来访问方法。
eat.do();</code></pre>
<h2>API(接口)</h2>
<p>API(Application Programming Interface, 应用程序编程接口)是一些<strong>预先定义</strong>的<code>函数</code>。</p>
<p>> 例如你<strong>想要给</strong> viki 送篮球,你必须<strong>先给</strong>小明送篮球,让小明把篮球给小蔡,<strong>最后</strong>小蔡把篮球给 viki。而别人已经写好了<strong>连续送篮球</strong>的 <code>函数</code>,你只需要调用这个 <code>函数</code>,就可以直接把篮球送到 viki 手里,这就是 API(接口)。 <strong>KiviBot 就有很多的 API,以便更快实现某功能:</strong></p>
<ul>
<li>Kivi API</li>
<li><a href="https://www.showdoc.com.cn/p/f57926ae832fbe6dcb2ffdeb5fd48c0c/">Bot(Oicq) API</a></li>
</ul>
<p>这时候解释一下,<strong>KiviBot 是依靠 Oicq API 来编写的框架</strong>,意思是实现框架离不开 Oicq,编写插件中同样可以使用 Oicq API。<strong>请以官方 API 为主,Bot(Oicq) API 为辅。</strong></p>