我可以使用完整路径导入模块,仍然使用`@ types`吗?

时间:2018-08-14 05:02:43

标签: typescript

例如,假设我做CREATE TABLE bajet ( date1 DATE,mt int); INSERT INTO bajet VALUES ('2018-05-01',108344); INSERT INTO bajet VALUES ('2018-06-01',108349); INSERT INTO bajet VALUES ('2018-07-01',108338); INSERT INTO bajet VALUES ('2018-08-01',108329); INSERT INTO bajet VALUES ('2018-09-01',108311); INSERT INTO bajet VALUES ('2018-10-01',108325); INSERT INTO bajet VALUES ('2018-11-01',108330); INSERT INTO bajet VALUES ('2018-12-01',108331); ,然后得到npm install localforage @types/localforage,这是一个模块。我可以这样做吗?

src/storage.ts

...虽然仍受import localforage from "../node_modules/localforage/dist/localforage.min" 的类型定义的帮助?

我知道@types/localforagetsconfig.json字段可以映射模块,但对我不起作用。

paths

1 个答案:

答案 0 :(得分:0)

在这种情况下,localforage包在typings/localforage.d.ts中有自己的类型(因此您不需要使用@types/localforage),但是当类型文件不会在加载时加载您将文件导入包中而不是整个包中。由于类型文件在全局范围内定义了LocalForage接口,因此您可以执行以下操作:

///<reference path="./node_modules/localforage/typings/localforage.d.ts"/>

// @ts-ignore
import * as localforage_real from "./node_modules/localforage/dist/localforage.min";
const localforage: LocalForage = localforage_real;
console.log(localforage);

(如果在模块中定义了LocalForage接口,那会有点棘手。)

但是要为您使用的每个模块执行此操作会很痛苦,因此,我建议您查看一个捆绑器,该捆绑器可以将import * as localforage from 'localforage'转换为在浏览器中可以使用的工具。