我的文件中有一个.gitlab文件,内容如下:
apiToken: ****
在我的项目中,我有一个文件config.ts,在构造函数中,我有:
constructor() {
this.gitlabPersonalToken = yaml.safeLoad(fs.readFileSync(os.homedir() + "/.gitlab").toString()).apiToken;
// error property 'apiToken' does not exist on type 'string | object'
}
如何解决此错误以及为什么我不理解该错误
感谢您的帮助
答案 0 :(得分:0)
正如对您的问题的评论所暗示的那样,您似乎必须将safeLoad()
的结果转换为期望的类型。关于您的代码,看起来可能像这样:
interface GitLabConfig {
apiToken: string;
}
const parsed = yaml.safeLoad(fs.readFileSync("./some.yaml").toString()) as GitLabConfig;
const apiToken = parsed.apiToken;
那样,打字稿接受“已解析”对象作为您的类型,并且不会收到提到的错误。