当我想要访问某些模块中的静态类属性时,出现typecript错误的问题。当使用静态类属性时,属性X在类型Y上不存在
比方说,我要出口一些类静态属性:
// MODULE 1
export class AppConfig {
static readonly apiKey: string = process.env.API_KEY;
}
在模块2我创建了某个对象的接口;
// MODULE 2
import { AppConfig } from "./appConfig";
interface AppContext {
config: AppConfig;
...
}
export default class App {
...
get ctx(): AppContext {
return {
config: AppConfig,
...
};
}
...
}
在模块3我终于想访问属性:
// MODULE 3
...
function createContext(app: App): object {
return Object.assign(app.ctx, {
apiContext: app.ctx.config.apiKey
});
}
...
然后我得到TS ERROR: “属性 'apiKey' 上键入 'AppConfig的' 不存在”,这很奇怪,因为这个属性无疑属于这种类型。
其实,我已经实现了建议的方法,但我认为应该有另一种方法来实现所需的输出而不使用接口。我想没有... –