微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。