TypeScript:名称空间抛出“属性不存在”

时间:2018-03-09 13:44:49

标签: typescript

我有一个在项目中运行良好的TypeScript代码,但在我的全新项目中,它不再有效。

我正在使用namespaces来构建我的应用:

app.ts:

namespace App {
    export function render() {...}
    export function onRouteNotFound() {...}
}

main.ts:

App.onRouteNotFound();

这是投掷:

main.ts(33,8): error TS2339: Property 'onRouteNotFound' does not exist on type 'typeof App'.

现在更复杂:

控制器/ category.ts:

namespace App.Controller.Category {
    export function details() {
        App.render(...);
    }
}

仍在投掷:

controller/category.ts(5,7): error TS2339: Property 'render' does not exist on type 'typeof App'.

它在类和函数上运行良好,但我不想使用它。我更喜欢名称空间的“静态”。

我该怎么做才能做到这一点?

这是我的tsconfig.json文件:

{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "strict": true,
        "esModuleInterop": false,
        "noImplicitAny": true,
        "moduleResolution": "node"
    },
    "include": [
        "public/**/*.ts",
        "app/**/*.ts"
    ]
}

感谢任何输入! (这段代码与其他应用程序几乎相同,但我没有使用相同的构建链,也许没有最新的打字稿版本,我不知道)

使用tsc v2.7.2

0 个答案:

没有答案