【发布时间】:2019-11-17 19:14:50
【问题描述】:
我正在尝试弄清楚如何使以下代码正常工作。
文件:foo.ts
const Foo = () => {
const api = {
address: (): string => {
return '';
}
};
return api;
};
export default Foo;
文件:bar.ts
import Foo from './foo';
const Bar = () => {
let api = {
name: (): void => {
const add = api.address();
}
};
Object.assign(api, Foo());
or
api = { ...api, ...Foo() };
return api;
};
export default Bar;
在我的 tsconfig.json 中,我设置了 "target": "es6"。当我使用 Object.assign() 时,api.address() 会报错:
类型 '{ name(): void; 上不存在属性 'address' }'。
我对此进行了研究,建议使用扩展运算符。我试过了
api = { ...api, ...Foo() };
我不是 100% 肯定是正确的。但是我得到了和上面一样的错误。
当我将鼠标悬停在 bar.ts 中的 api 上时,它显示只有名称存在
让 api: { 名称():无效; }
关于我在代码中做错了什么有什么建议吗?
【问题讨论】:
标签: typescript