首页 > 解决方案 > 打字稿无法从其他目录中找到接口

问题描述

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

在 src 文件夹中有一个名为IImportRow.ts

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

文件夹中的所有其他 ts 文件都可以找到此接口src

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

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
},

标签: typescript

解决方案


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"]
}

推荐阅读