首先:我在别人建立的项目中使用了 typescript,所以我对它有点熟悉,但还不够。现在由我来为自己进行设置,而我对模块和导入的工作方式感到困惑。 (这是一个使用 Snowpack 的 Svelte 项目)
假设我有 3 个文件:foo.ts、bar.ts 和 baz.ts
在 baz.ts 中,我有一个简单的对象(它可以帮助我组织事物):
// baz.ts
export const Baz = {
someProperty: 'value'
}
在 bar.ts 中,我导入这个对象并创建一个类:
// bar.ts
import { Baz } from 'baz';
export default class BarService {
public baz = Baz;
constructor() {}
public load = (baz.someProperty: any): Promise<any> => {
// loading baz.someProperty
}
}
然后我在 foo.ts 中导入“BarService”类:
// foo.ts
import { BarService } from 'bar';
const someFunction = () => {
const barService = new BarService();
barService.load(barService.baz.someProperty);
}
我还添加了 baz.d.ts 和 bar.d.ts 文件,如下所示:
// baz.d.ts
declare module 'baz' {
export const Baz: {
someProperty: any,
}
}
// bar.d.ts
declare module 'bar' {
declare class BarService: {
public baz: // Problem 1: how do I set the type?
public load(someAttribute: any): Promise<any>;
}
}
我的问题:
我查看了有关模块的 TypeScript 文档,但我的脑海中仍然不清楚。我什至不确定 *.d.ts 文件是否必要。