打字稿无法从其他目录中找到界面

时间:2018-09-05 13:40:27

标签: typescript

我的项目中确实有2个主文件夹:

  • src/*.ts
  • test/*.test.ts

在src文件夹中,有一个名为IImportRow.ts的接口

interface IImportRow {
    transactionId?: string;
    transactionApiId?: string;
    ...
}

可以在src文件夹中的所有其他ts文件中找到此界面。

但是,TS在test文件夹中找不到该接口

var row: IImportRow = {
    transactionId: '10',
    ...
};
  

[ts]找不到名称'IImportRow'。

这是预期的行为吗?我应该怎么做才能修复它?

这是我的tsconfig.json配置

"compilerOptions": {
    "target": "es2018",
    "module": "commonjs",
    "sourceMap": true,
    "outDir": "dist",
    "strict": false,
    "noImplicitAny": false,
    "strictPropertyInitialization": false,
    "esModuleInterop": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true
},

1 个答案:

答案 0 :(得分:1)

TsConfig文件有一个附加部分,可让您指定应包含/排除哪些目录以供TS编译器检查。您只需要将测试文件夹添加到include数组中即可。这是我的一个项目中的示例,您可以根据需要进行调整。

{
    "compilerOptions": {
        "module": "commonjs",
        "declaration": false,
        "noImplicitAny": false,
        "removeComments": true,
        "noLib": false,
        "allowSyntheticDefaultImports": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "target": "es6",
        "sourceMap": true,
        "allowJs": true,
        "outDir": "./build",
        "baseUrl": "./src",
        "skipLibCheck": true
    },
    "include": ["src/**/*"],
    "exclude": ["node_modules", "build", "**/*.spec.ts"]
}