gpt4 book ai didi

typescript - 使用 export = 语句从模块导入接口(interface)

转载 作者:搜寻专家 更新时间:2023-10-30 21:37:49 25 4
gpt4 key购买 nike

许多类型定义文件使用 export = 指令,例如:

declare module "i40" {
interface RouterStatic {
() : Router;
}

interface RouteInfo {
params : {
[key : string] : any;
};
splats : string[];
route : string;
fn : Function;
next : any;
}

interface Router {
addRoute(routeString : string, action ?: Function);
match(test : string) :RouteInfo;
}

export = null as RouterStatic;
}

或者,有人可能会编写如下代码:

export interface Blah {}
const x = {hi : 5};
export = x;

编辑:这段代码曾经工作过一次,但从当前版本 (2.6) 开始,它无法编译。编译器说,如果我从模块中导出其他内容,我将无法使用 export =。这是有道理的。

如何导入模块中的接口(interface)之一?以下均无效。

import Router = require('i40');
let x : Router.RouteInfo; //RouteInfo not found

import {RouteInfo} from 'i40'; //RouteInfo not found

import * as Router2 from 'i40'; //Error, i40 is not a module

最佳答案

我会说(引用 modulesAmbient 模块 下)

declare module "i40" {
interface RouterStatic {
...
}

interface RouteInfo {
...
}

interface Router {
...
}

export { RouterStatic, RouteInfo, Router } as RouterStatic;
}

import * as Router2 from 'i40';
// use as Router2.RouterStatic, etc

// or
import { RouterStatic, RouteInfo, Router } from 'i40';
// use as RouterStatic, etc

关于typescript - 使用 export = 语句从模块导入接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48368465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com