网站搜索

javascript - Typescript 导入/导出


运行 app.ts 后,我期望得到这个结果:

{ val: 'A' } //C
{ val: 'CONSTANT'} //B

但是,我得到的结果是:

{ val: 'A' } //C
{ val: undefined } //B supposed to be 'CONSTANT' ??

有什么想法吗??谢谢!

这是完整的代码:

tsconfig.json

"target": "es6",                                     
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"module": "commonjs",
"rootDir": "./src",
"outDir": "./dist", 
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,    
"strictPropertyInitialization": false,
"skipLibCheck": true 

app.ts

import { C } from "./second";
import { B } from "./first";

console.log(C)
console.log(B)

/**
 *  C depends on A
 *  B depends on CONSTANT
 **/

first.ts

import { CONSTANT } from "./second"
const A ={
    val: 'A'
}
const B = {
    val: CONSTANT
}
export { A, B }

second.ts

import { A } from "./first";
const CONSTANT = 'CONSTANT'
const C = {
    val: A.val
}
export { CONSTANT, C }

答案#1

这里有一个循环依赖。const CONSTANT='CONSTANT' 应该放在一个单独的文件中