如何使用打字稿三斜杠参考注释导入另一个模块并使用功能?

时间:2018-08-08 11:57:37

标签: typescript import module

现在可能不需要Typescript的三斜杠引用,但是我仍然想知道如何使用它。

说我有两个文件:

-modules / a.d.ts

export declare function hello(name: any): void;

-modules / a.js

"use strict";
exports.__esModule = true;
function hello(name) {
    console.log("Hello, " + name + " (from a)");
}
exports.hello = hello;

现在我想在另一个打字稿文件中使用它:

hello.ts

/// <reference path="./modules/a.d.ts" />

hello("module a");

我这样写,但是当我编译hello.ts时,它报告错误:

hello.ts(3,1): error TS2304: Cannot find name 'hello'.

我该如何解决?

1 个答案:

答案 0 :(得分:0)

好像我对模块有很多误解。

为了使所有东西正常工作,我必须进行以下更改:

修改modules/a.d.ts

declare module 'a' {
    export function hello(name: string) : void;
}

它应该已经声明module 'a'才能与/// <reference ...一起使用

modules/a.js设为本地npm软件包

package.json目录中提供一个modules,内容为:

{
  "name": "a",
  "version": "1.0.0",
  "main": "a.js"
}

并安装npm install --save ./modules

最后,以下代码可以工作

/// <reference path="./modules/a.d.ts" />
import {hello} from 'a';

hello("typescript");