作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我找了很多例子,自己也试过把一个模块拆分成几个文件。所以我得到了那个,非常方便。但有时出于同样的原因拆分一个类(class)也是可行的。假设我有几种方法,但我不想将所有内容都塞进一个长文件中。
我正在寻找类似于 C# 中的 partial 声明的东西。
最佳答案
最近我使用这种模式:
// file class.ts
import { getValue, setValue } from "./methods";
class BigClass {
public getValue = getValue;
public setValue = setValue;
protected value = "a-value";
}
// file methods.ts
import { BigClass } from "./class";
function getValue(this: BigClass) {
return this.value;
}
function setValue(this: BigClass, value: string ) {
this.value = value;
}
这样我们就可以将方法放在一个单独的文件中。现在这里发生了一些循环依赖的事情。文件 class.ts
从 methods.ts
导入,methods.ts
从 class.ts
导入。这可能看起来很可怕,但这不是问题。只要代码执行不是循环的,一切都很好,在这种情况下,methods.ts
文件不会执行 class.ts
文件中的任何代码。 NP!
您也可以像这样将它与通用类一起使用:
class BigClass<T> {
public getValue = getValue;
public setValue = setValue;
protected value?: T;
}
function getValue<T>(this: BigClass<T>) {
return this.value;
}
function setValue<T>(this: BigClass<T>, value: T) {
this.value = value;
}
关于javascript - 如何将 TypeScript 类拆分为多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23876782/
我是一名优秀的程序员,十分优秀!