Skip to content

Latest commit

 

History

History
116 lines (88 loc) · 3.65 KB

File metadata and controls

116 lines (88 loc) · 3.65 KB
description 扩展库(extensions)、接口(apis)、连接器(connectors)的定义和使用说明

扩展库的逻辑和数据结构示例

扩展库定义

export namespace structures { export class NameStructure { firstName: String; lastName: String; } }

export namespace logics { export declare function splitName(name: String): extensions.strUtils.structures.NameStructure; }

扩展库使用示例

let nameObj: extensions.strUtils.structures.NameStructure;

...

nameObj = extensions.strUtils.logics.splitName('John Doe');

API 接口和数据结构示例

接口定义

export namespace structures { export class QueryResult { phoneNumber: String; userName: String; address: String; } }

export namespace interfaces { export declare function queryPhoneNumbers(name: String): List<apis.someService.structures.QueryResult>; }

接口使用示例

let queryResult: List<apis.someService.structures.QueryResult>;

...

queryResult = apis.someService.interfaces.queryPhoneNumbers('John Doe');

连接器的逻辑和数据结构示例

连接器定义

export namespace structures { export class MailBody { subject: String; from: String; to: String; cc: String; sendDate: Date; content: String; }
export class IllegalArgumentException {
    errorMsg: String;
    errorType: String;
}

}

export namespace logics { /* 收取邮件,支持获取最新的指定数量的邮件 */ export declare function getEmail(needMsgCount: Integer): List<connectors.QQ_email_connector.structures.MailBody>; }

export namespace namespace2 { // 某些连接器有多个命名空间 export declare function someFunc(arg1: Integer, arg2: String): List<connectors.QQ_email_connector.structures.MailBody>; }

连接器使用示例

/**
 * 连接器。使用时需先创建连接再调用相应函数。默认可以用 '连接器名_defaultConn' 表示默认连接。
 * @note 连接器在`connectors`命名空间下定义
 * @note 连接和函数调用必须在同一行代码内,即不允许单独声明连接
 * @example connectors.connectorName.connect(connectionName).functionName(params) // Correct usage
 * @example connectors.connectorName.connect(connectionName); // Incorrect usage
 */

let variable1: List<connectors.QQ_email_connector.structures.MailBody>;

...

variable1 = connectors.QQ_email_connector.connect('defaultConn').getEmail(10);
variable2 = connectors.QQ_email_connector.namespace2.someFunc(10, 'test');
- extensions.xxx.ts, apis.xxx.ts, connectors.xxx.ts 文件为外部依赖,仅可引用,不可修改 - 使用逻辑调用和数据结构时,一定要写全命名空间,如 `{外部依赖类型(复数)}.${扩展库名|接口服务名|连接器名}.{logics|structures|interfaces}.${逻辑名|数据结构名|接口名}` - 调用连接器逻辑时,比较特殊,需要加上`connect('连接名')`,格式为`connectors.${连接器名}.connect('连接名').${逻辑名}(参数)`。如果连接名用户未提示,则使用`'连接器名_defaultConn'`表示默认连接。数据结构不需要加上连接名。 - 连接器可能有多个命名空间,非 logics 的命令空间时,将 logics 改成相应的命名空间,如`connectors.${连接器名}.namespace2.someFunc(参数)`。 - 禁止单独声明连接器连接,连接和函数调用必须在同一行代码内,即不允许单独声明连接。