autojs声明文件(声明书格式)

声明文件是什么

声明文件是typescript中的概念, 主要用来描述变量类型,

声明文件不包含实现,它只是类型声明

声明文件的服务对象是谁?

声明文件, 去描述js文件中的变量类型, 给ts用

autojs需要声明文件吗

vscode会把声明文件的内容作为代码提示., 这样就不用查文档了, 这是好处之一;

之前的代码提示是通过代码片段来实现的,

现在的插件把代码片段文件删掉了, 取而代之的就是.d.ts文件

vscode的autojs插件文件路径

C:\Users\Administrator.vscode\extensions\hyb1996.auto-js-pro-ext-1.3.2

从哪里获取autojs的声明文件

打开vscode,按以下步骤操作:

按F1输入autojsv8点击Auto.js Pro: 新建V8 API项目(New V8 API Projcet)选择文件夹, 用来放置项目文件声明文件就出现了node_modules@autojs\types-pro8\index.d.ts需要一个tsconfig.json文件, 来指明声明文件在哪里, 字段是: typeRoots

声明文件index.d.ts

d.ts大名叫TypeScript Declaration File

查看该文件, 看看有哪些声明格式:

declare module ‘__app__’ { … }declare var app: AutoJs.App;declare function sleep(n: number);declare namespace AutoJs { … }

并且基本都加了global, 表示这是一个全局声明.

那么我们在vscode中直接写全局声明过的变量, 鼠标放上去, 就可以显示代码提示了,

就不用查文档了呢, 每次节约10秒钟, 算算能节约多长时间.

从上到下依次是

声明模块声明变量声明函数声明命名空间

module和namespace看着好像没什么区别啊, 我就查了一下, 官方文档的解释如下:

A note about terminology: It’s important to note that in TypeScript 1.5, the nomenclature has changed. “Internal modules” are now “namespaces”. “External modules” are now simply “modules”, as to align with ECMAScript 2015’s terminology, (namely that module X { is equivalent to the now-preferred namespace X {).

也就是说module X 等同于 namespace X, 我理解的对不对?

有错请指正.

怎么声明一个函数

我们来看看这个images.save是怎么声明的?

images.save(image, path[, format = “png”, quality = 100])

首先拆解函数

他属于images这个对象他的名字叫save他有4个参数, 2个必填参数, 2个默认参数

然后我们在vscode中输入images.save,

鼠标放到images上面, 可以看到以下代码提示

autojs声明文件

鼠标放到save上面, 可以看到以下代码提示

autojs声明文件

按住ctrl, 再点击images可以看到声明内容

declare var images: AutoJs.Images;

按住ctrl, 再点击save可以看到声明内容, 这就是上面图片中代码提示的全部内容

/*** 把图片image以PNG格式保存到path中。如果文件不存在会被创建;文件存在会被覆盖。* ```* // 把图片压缩为原来的一半质量并保存* var img = images.read("/sdcard/1.png");* images.save(img, "/sdcard/1.jpg", "jpg", 50);* app.viewFile("/sdcard/1.jpg");* ```* @param image 图片* @param path 路径* @param format 图片格式,可选的值为:* * `png`* * `jpeg`/`jpg`* * `webp`* @param quality 图片质量,为0~100的整数值**/  save(image: Image, path: string, format?: "png" | "jpg" | "jpeg" | "webp", quality?: number);

save四个参数中, path, format, quality的参数类型都是基本类型, string, number, 可选参数用 ?: 表示,

save方法的层级

declare module '__images__' {    global {        namespace AutoJs {            interface Images {                save( ... );

第一个参数是Image, 我们按住Ctrl, 点击Image看看跳转到哪里了?

Image

class Image {  getWidth(): number;  readonly width: number;  getHeight(): number;  readonly height: number;  saveTo(path: string);  pixel(x: number, y: number): number;  recycle();  isRecycled(): boolean;  readonly mat?: Mat;  readonly bitmap?: any;}

Image层级

declare module '__images__' {  global {    namespace AutoJs {      class Image {

图色的声明就放到图色模块里面, 再声明为global, 归属于命名控件AutoJs

Image这个类是专门为了save这个方法的第一个参数来编写的,

save的参数类型基本都是基本类型, 除了Mat, 点击Mat看看在哪里声明的?

type Mat = any;

any, 变量类型终结者.

type用于声明一个变量类型Mat, 其真实类型是any.

一些声明例子

declare var name: string;declare var age: number;declare var id: number;declare const SMALL_TARGET: 1_0000_0000;declare function getName(): string;declare function getName(id: string): string;declare function isSingleDog(name?: string): boolean;

声明模块

foo.d.ts

export let name: string;export function getNameURL2(num888888: string): string;namespace student {  export let name: string;  export let age: number;  export function doWhat(what: string): string;}

foo.js

let name = "yashu666";function getNameURL2(num) {  return "numberURL2 is " + num;}let student = {  name: "lucy",  age: "16",  doWhat: function (info) {    console.log("student is doing " + info);  },};module.exports = { name, getNameURL2, student };

main.ts

import URL2 from "./foo/foo";console.log(URL2);console.log(URL2.name);URL2.getNameURL2;URL2.student.doWhat("homework");

注意

foo.d.ts和foo.js要在同一个文件夹main.ts中的代码提示的是foo.d.ts中的内容main.ts运行的是foo.js中的内容

名人名言

思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问— 牙叔教程

声明

部分内容来自网络本教程仅用于学习, 禁止用于其他用途

原创文章,作者:NFDEUK,如若转载,请注明出处:https://www.beidanyezhu.com/a/18562.html

(0)
NFDEUK的头像NFDEUK
上一篇 2024-12-17 22:02:53
下一篇 2024-12-17

相关推荐

  • go语言如何检查文件是否存在

    go语言检测文件是否存在,首先创建一个FileInfo,如果不报错,再通过 IsDir()检查是否是目录: finfo, err := os.Stat("filename…

  • 如何将Golang打包为 dll 文件

    这篇文章给大家分享的是将Golang打包为 dll 文件的方法,相信大部分人都还没学会这个技能,为了让大家学会,给大家总结了以下内容,话不多说,一起往下看吧。 1、下载安装MinG…

  • golang的文件读写操作

    1.打开和关闭文件 os.Open()函数能够打开一个文件,返回一个*File和一个err。 对得到的文件实例调用close()方法能关闭文件。 package main impo…

  • 干货(任命书格式)

    公司在生产经营中,公司需要变更法人肯定是要按照相应的程序来变更,那具体的流程、材料以及公司法人变更涉及到的问题有哪些呢? 一、公司变更法人的流程 1、整理需要变更的信息,并在工商局…

  • Python创建(授权文件)

    1. 介绍 1.1 介绍 今天福哥带着大家来学习Python读写文件的方法,虽然现阶段做项目需要用到文件操作的情况不多了,但是免不了在特殊情况下还是需要用到这个技术的。 今天福哥还…

  • 100套合同范本(合同的格式)

    你有没有被房东或者合伙人坑过?签合同是件大事,稍有不慎就容易被人给套路了,到时候喊冤无门啊!特别是一些刚出社会的年轻人,不懂合同的规范写法,被一些老油条钻合同漏洞是再正常不过了。 …

    2024-12-17
  • 保姆聘用合同的格式是怎样的(保姆合同)

    在家庭经济情况允许的前提下,招聘保姆也是可以的,这样子有利于减轻家里面的家务负担还有能很好的规划家里的事物。所以说聘用保姆也是有很多的注意事项,那么它的格式是如何呢?接下来法律快车…

  • 民事起诉状(起诉书格式)

    民事起诉状原告:×××,住所……。 法定代表人/主要负责人:×××,……(写明职务),联系方式:……。 委托诉讼代理人:×××,……。 被告:×××,……。 …… (以上写明当事人…

    2024-12-17
  • 借条该怎么写(借条格式范本)

    ■点击右上角【关注】“贾素飞征地拆迁律师”头条号,私信回复“咨询”,即可享有一对一法律服务咨询。 ■征地拆迁律师四有新标准:有专长;有态度;有口碑;有人情味 ■拆迁维权有套路;高额…

    2024-12-17
  • 我如何写辩护词(辩护词格式)

    文/李岩律师 律师,吃开口饭。所谓开口饭,是说律师靠表达吃饭。表达又分两种——口语和文字。文字表达,是律师的基本功,占半壁江山。律师写的文字,辩护词是常见的一类。一篇合格的辩护词,…

    2024-12-17

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

分享本页
返回顶部