提问人:yuccai 提问时间:11/11/2020 最后编辑:yuccai 更新时间:11/11/2020 访问量:55
在打字稿中分离的文件中实现方法类
Implement methods class in separted files in typescript
问:
我尝试在文件中定义一个类,并在单独的文件中实现其方法,以便使用延迟加载。
例如,这里是主类。
export default class Foo {
private bar() {
console.log("private bar");
}
public baz() {
console.log("public baz");
}
public async qux(): Promise<void> {
const { default: qux } = await import("./qux");
return qux.call(this);
}
}
以下是“./qux.ts”的内容:
export default function qux() {
this.bar()
this.baz();
}
我在这个文件中遇到的第一个错误如下:
“'this'隐式具有类型'any',因为它没有类型 注解”
我还尝试在我的tsconfig中设置。这消除了我以前的错误,但我可以访问私有的酒吧方法,我不想要这个。"noImplicitThis": false
我尝试了其他实现,删除了函数绑定并改用类型化参数:
export default class Foo {
private bar() {
console.log("private bar");
}
public baz() {
console.log("public baz");
}
public async qux(): Promise<void> {
const { default: qux } = await import("./qux");
return qux(this);
}
}
以下是“./qux.ts”的内容:
import Foo from "./Foo";
export default function qux(this: Foo) {
this.bar()
this.baz();
}
现在错误是:
“物业'酒吧'是私人的,只能在'Foo'类内进入”
我想从类修饰符(公共 - 私有 - 受保护)和延迟加载中受益。我应该使用什么模式?
答: 暂无答案
评论