我正在使用 SailsJS 开发后端服务器。它基本上将所有模型帮助程序服务以及我自己的服务注入到全局命名空间中。如果我能够获得这些服务的 Intellisense,那将对我大有裨益。
我首先设置typings并安装了 lodash 和 node 的全局类型定义。创建后它就像一个魅力jsconfig.json and tsconfig.json files.
接下来我想为我自己的服务创建一个基本定义文件。我创建了一个目录类型/全局变量 with a 索引.d.ts其中的文件:
declare namespace foo {
export function bar();
}
declare var baz: { some: number };
这只是为了确保如果定义不起作用,我不会浪费时间编写定义。
接下来我包括了索引.d.ts文件输入打字/index.d.ts通过添加参考标签:
/// <reference path="globals/psiewakacje/index.d.ts" />
令我惊讶的是,它在我项目的 Javascript 文件中不起作用。打字后foo.
or baz.
我没有得到任何明智的智能感知。
我能够获得的唯一智能感知支持是当我通过以下方式在每个文件中导入这些服务时:
import * as InternalParser from '../services/InternalParser';
or
var InternalParser = require('../services/InternalParser');
但这不使用 Typescript 的定义文件,只提供导出的属性。总体而言,结果并不理想。
我想知道如何让它正常工作。我查看了节点和 lodash 的类型定义文件,它们执行相同的操作:声明具有特定类型的变量/命名空间。然而,他们的定义在 Javascript 中有效,而我的则不行。如何做对呢?