【发布时间】:2018-03-29 04:36:21
【问题描述】:
当我想访问某个模块中的静态类属性时遇到打字稿错误问题。
假设我想导出一些具有静态属性的类:
// 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 错误: “'AppConfig'类型上不存在属性'apiKey'。”,这很奇怪,因为该属性无疑在这种类型上。
【问题讨论】:
标签: typescript