[英]typescript importing/exporting objects and spreading
我已经使用 TS 一年多了,但我仍然对导入和导出有些困惑。 为什么我不能将我导入到导出对象中的对象展开?
/// file1
export {
PORT,
SSL_CRT,
SSL_KEY,
}
// file2
import * as env from 'file1'
// env.PORT is available at this point
export {
...env // [ts] Identifier expected. [1003]
}
我用以下方法解决了这个问题,但我知道它不一样,也不是我想要的。
// file2
import * as env from 'file1'
export default {
...env // [ts] Identifier expected. [1003]
}
您试图做的是重新导出。 方法如下:
// file2.ts
export * from './file1'
您不能从import * as env
传播命名空间模块对象。 它是一个特殊的对象,据我所知,JavaScript 不允许您传播它。
我认为这符合您期望的方式:
// file1.ts
export {
PORT,
SSL_CRT,
SSL_KEY
};
// file2.ts
import * as env from "./file1";
console.log(env); // { PORT: 'foo', SSL_CRT: 'bar', SSL_KEY: 'baz' }
export { env };
// file3.ts
import { env } from "./file2";
console.log(env); // { PORT: 'foo', SSL_CRT: 'bar', SSL_KEY: 'baz' }
所以回答你的问题:你不需要使用扩展运算符,因为对象正在被隐式解构。 为什么会发生这种情况是一个比我更聪明的人的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.