首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将类型记录类拆分为多个文件

将类型记录类拆分为多个文件
EN

Stack Overflow用户
提问于 2022-10-25 15:19:36
回答 3查看 49关注 0票数 0

我有一门打字稿课,越来越多了。为了更好地组织它并避免把它填塞起来,我想根据页面对象结构将它拆分成5-7个不同的文件。目前,它在一个文件中如下所示:

mainAPI.ts

代码语言:javascript
复制
const axios = require('axios');
export class API {
  makeAxiosRequest() {}
  doLogin() {}
  getJSESSIONID() {}
  getLoginResponse() {}
  deleteAnUser(userName) {}
  addAnUser(userName) {}
  .,etc
}

testFile.ts

代码语言:javascript
复制
import mainAPI from mainAPI.ts

await mainAPI.doLogin();
await mainAPI.addAnUser();
await mainAPI.logout();

编辑:我希望实现这样的目标:

mainAPI.ts

代码语言:javascript
复制
const axios = require('axios');
export class API {
  //Want the methods from loginAPI.ts, userAPI.ts, purchaseAPI.ts to be a part of this class.
}

loginAPI.ts

代码语言:javascript
复制
doLogin() {}
doAdminLogin() {}
doMemberLogin() {} etc

userAPI.ts

代码语言:javascript
复制
deleteAnUser() {}
addAnUser() {}
updateUser() {} etc

purchaseAPI.ts

代码语言:javascript
复制
addToCart() {}
buyProduct() {}
cancelOrder() {} etc

到目前为止,我只尝试按注释将API方法组件拆分。我正在寻求关于如何将一个类分割成多个文件的帮助。谢谢

EN

回答 3

Stack Overflow用户

发布于 2022-10-25 15:45:06

程序员不只是简单地“将代码分成不同的文件”,而是遵循称为设计模式的编程约定.

有一种最适合您的应用程序的结构/设计模式,并且考虑到我们查看您的代码的能力有限,最好自己查找一组四本书,以便进行判断,或者给我们一个更广泛的问题,并更深入地了解您在做什么。

票数 0
EN

Stack Overflow用户

发布于 2022-10-25 15:33:30

您可以做的是拥有一个由类API扩展的类。例如,你能做的就是

代码语言:javascript
复制
export class API extends YourNewClass {
  
}

代码语言:javascript
复制
export class YourNewClass {
  makeAxiosRequest() {}
  doLogin() {}
  getJSESSIONID() {}
  getLoginResponse() {}
  deleteAnUser(userName) {}
  addAnUser(userName) {}
  .,etc
}
票数 -1
EN

Stack Overflow用户

发布于 2022-10-25 15:41:19

您可以为每个函数创建一个单独的文件(当然,也可以在每个文件中放置多个函数)并将它们导入定义API类的文件中。

所以你的档案结构应该是:

代码语言:javascript
复制
| - API.ts
| - makeAxiosRequest.ts
| - doLogin.ts
| - ...

然后,你有了你的makeAxiosRequest.ts

代码语言:javascript
复制
import { API } from "./API";
import axios from "axios";

export function makeAxiosRequest(this: API /* other args */) {
  // do logic
}

还有你的doLogin.ts

代码语言:javascript
复制
import { API } from "./API";
import axios from "axios";

export function doLogin(this: API /*, other args */) {
  // do logic
}

诸若此类。

那么,在您的API.ts中,您可以:

代码语言:javascript
复制
import { makeAxiosRequest } from "./makeAxiosRequest";
import { doLogin } from "./doLogin";
// ...
export class API {
  makeAxiosRequest = makeAxiosRequest;
  doLogin = doLogin;
  // ...
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74196424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档