Typescript中的“声明模块name_without_quotes”声明的目的是什么与带有引号的声明相比

问题描述

Definitely Typed存储库中,我看到了一堆没有引号的环境模块声明,例如:

[shagen@shabunc-MBP DefinitelyTyped (master)]$ ag "declare module [^\'\"]" | head

types/lockr/index.d.ts:8:declare module lockr {
types/nes/index.d.ts:44:declare module nes {
types/swig/index.d.ts:38:export declare module lexer {
types/swig/index.d.ts:103:export declare module parser {
types/swig/index.d.ts:128:export declare module loaders {
types/fibjs/declare/iconv.d.ts:197:declare module __iconv {
types/fibjs/declare/bson.d.ts:197:declare module __bson {
types/lokijs/index.d.ts:2027:declare module LokiConstructor {
types/angular-deferred-bootstrap/index.d.ts:11:declare module angular {

我的理解是,尽管像declare module something这样的声明不等同于declare modules "something"。例如,此代码将无法编译(它将因error TS2305: Module '"fs"' has no exported member 'ping'.而失败):

declare module fs {
    function ping(): boolean;
}

import {ping} from "fs";

ping();

添加引号会有所帮助:

declare module "fs" {
    function ping(): boolean;
}

import {ping} from "fs";

ping();
          

我没有在文档中找到任何恰当的解释,它们使用的是“声明模块name_without_quites”类型的声明-看来我的理解还不完善。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)