如何将打字稿代码分成多个文件?

时间:2019-11-07 22:32:06

标签: typescript

以前,我在C ++开发方面经验最为丰富,在其中包含另一个文件非常容易。在打字稿中,这似乎并不那么琐碎。

有一些巨大的数组,我只想声明一次为const,然后在以后的核心逻辑中使用它们。由于这些数组的大小,我不想用它来污染我的主代码,我想将其放入一个外部ts文件中。我已经尝试过使用Google并包含所有可能的方法,但是看来我做对了。

我的tsconfig.json:

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es6",
        "outDir": "out",
        "lib": [
            "es6"
        ],
        "sourceMap": true,
        "rootDir": "src",
        "strict": true,   /* enable all strict type-checking options */
        /* Additional Checks */
        "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
        "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
        // "noUnusedParameters": true,  /* Report errors on unused parameters. */
    },
    "include": [
        "src/*"
    ],
    "exclude": [
        "node_modules",
        ".vscode-test"
    ],
    "files": [
        "src/extension.ts",
        "src/templates.ts",
        "src/intellisense.ts",
    ]
}

主要代码是extension.ts,其他两个应该只包含一些常量变量。来自intellisense.ts的示例代码:

import * as vscode from 'vscode';

const completionTypes = [
    new vscode.CompletionItem('text1'),
    new vscode.CompletionItem('text2'),
    new vscode.CompletionItem('text3'),
    ... // A hundred more entry
    ];

但是,当我尝试在extension.ts中的代码中使用completionTypes时,短绒棉会说Cannot find name 'completionTypes'.ts(2304)

如何用打字稿组织我的代码?

1 个答案:

答案 0 :(得分:1)

您需要导出completionTypes以使其可用于其他文件:

intellisense.ts:

import * as vscode from 'vscode';

export const completionTypes = [
  // ...
];

extension.ts:

import { completionTypes } from './intellisense';

//...