现在可能不需要Typescript的三斜杠引用,但是我仍然想知道如何使用它。
说我有两个文件:
export declare function hello(name: any): void;
"use strict";
exports.__esModule = true;
function hello(name) {
console.log("Hello, " + name + " (from a)");
}
exports.hello = hello;
现在我想在另一个打字稿文件中使用它:
/// <reference path="./modules/a.d.ts" />
hello("module a");
我这样写,但是当我编译hello.ts
时,它报告错误:
hello.ts(3,1): error TS2304: Cannot find name 'hello'.
我该如何解决?
答案 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");