使用CommonJS导出TS类型需要

时间:2016-08-18 08:21:52

标签: node.js typescript commonjs

给定文件A.ts:

interface B {};
export = {};

和文件C.ts:

import A = require("./A");
var c: B; // Typescript error: Cannot find name

如何在C.ts 中显示A.ts中声明的接口,同时仍使用CommonJS导入样式(即require

我已尝试var c: A.B,但这不起作用。

2 个答案:

答案 0 :(得分:1)

对于以下结构你应该没问题:

A.ts

export interface A 
{
    SomeProperty: number;
}

C.ts

import { A } from './A';

var x: A = {SomeProperty: 123}; //OK
var x1: A = {OtherProperty: 123}; //Not OK

更新

你也可以像这样编写定义文件:

A.d.ts

interface B 
{
    SomeProperty: number;
}

C.ts

/// <reference path="A.d.ts" />

var c: B;
c.SomeProperty; //OK

答案 1 :(得分:0)

  

export =语法指定从中导出的单个对象   模块。这可以是类,接口,命名空间,函数或   枚举。

来自https://www.typescriptlang.org/docs/handbook/modules.html

所以现在你导出空类。

尝试文件A.ts:

interface B {};
export = B;

和文件C.ts:

import B = require("./A");
var c: B;