【发布时间】:2018-07-08 12:58:18
【问题描述】:
我正在尝试在打字稿中使用 node_module uuid-js。我已经安装了模块和打字。
问题:如何导入模块?
我要使用的方法是uuid.create。
这是在uuid-js 的输入中定义的,如下所示:
export = uuid;
declare class uuid {
equals(uuid: uuid): boolean;
...
static create(version?: number): uuid;
...
}
使用 export = 导入模块时,TypeScript 特定的导入 module = require("module") 必须用于导入模块。
这似乎暗示我需要这样做:
import UUID = require('uuid-js');
这似乎编译成这样:
const UUID = require("uuid-js")
我是否有理由在我的代码中使用 import 而不是 const?为什么不直接使用编译好的代码呢?
我觉得使用 require 很奇怪。也许,我不使用打字或做其他事情会更好......?
使用有什么区别:
import UUID = require('uuid-js');
和
const UUID = require("uuid-js")
我也尝试过像宇智波斑建议的那样使用更传统的导入策略,但我得到了错误。
使用import * as UUID from 'uuid-js' 会导致:
error TS2497: Module '".../node_modules/@types/uuid-js/index"' resolves to a non-module entity and cannot be imported using this construct.
使用import UUID from 'uuid-js'; 会导致:
error TS1192: Module '".../node_modules/@types/uuid-js/index"' has no default export.
【问题讨论】:
-
据匿名消息人士称,导入语法是 TS 发明的遗留语法,不应再使用
-
@SterlingArcher - 应该使用什么?
标签: typescript import