【问题标题】:Typescript import definition file with a different path than the sourceTypescript 导入定义文件的路径与源文件不同
【发布时间】:2018-04-09 23:30:13
【问题描述】:

当 Typescript 的路径与定义文件的路径不同时,如何让 Typescript 指向 JavaScript 源文件?

我的目录结构如下:

scripts/
|
+-typings/
| |
| +-lib.d.ts
|
+-program.ts
|
+-program.js
|
+-lib.min.js

Program.ts 包含以下代码:

import Lib from "./typings/lib";

Lib.SomeFunction(); // etc.

但是当我尝试编译并运行它时,我得到以下 javascript 错误:

Failed to load resource: the server responded with a status of 404 (Not Found)
/scripts/typings/lib.js

如何让 Typescript 查找 lib.min.js 而不是查找定义文件的位置?

编辑:请注意,如果我将 lib.d.ts 向上移动到脚本目录并将其重命名为“lib.min.d.ts”,那么一切正常。但我更愿意将我的定义放在一个单独的文件夹中,而且我觉得必须有某种方法来为定义和实现文件指定不同的路径。

【问题讨论】:

    标签: javascript typescript


    【解决方案1】:

    您必须修改 tsconfig.json 文件中的“compilerOptions”属性以包含类型目录。

    {
      "compilerOptions": {
        "target": "es6",  
        "baseUrl": ".",
        "paths": {
          "*": [
            "./scripts/typings/*"
          ]
        }
      }
    }

    【讨论】:

    • 谢谢,但恐怕它仍在寻找“/scripts/typings/lib.js”而不是“/scripts/lib.min.js”。我需要以某种方式更改导入语句吗?
    • 您不必将定义文件导入源代码。 Typescript 编译器会读取 tsconfig.json(如果放在根目录下),然后自动读取/验证定义。
    • 如果我不导入定义文件,program.ts不会编译,说“Cannot find name 'Lib'”
    • 您是否在 Program.ts 中的任何地方使用导入的“Lib”?如果否,则删除该行并重试。
    • 是的,我是。我编辑了原始问题以使其更清楚。
    猜你喜欢
    • 1970-01-01
    • 2016-08-17
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 2017-02-02
    • 1970-01-01
    相关资源
    最近更新 更多