给定文件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
,但这不起作用。
答案 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;