2016-08-18 6 views
0

与えられたファイルA.tsを要求しますCommonJSインポートスタイル(つまりrequireをまだ使用していますか?輸出TSタイプは

私はvar c: A.Bを試しましたが、動作しません。

答えて

1

あなたはfolowing構造の罰金する必要があります:

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 

UPDATE

ます。また、書き込み定義ファイルで行くことができますこのように:

A.d.ts

interface B 
{ 
    SomeProperty: number; 
} 

C.ts

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

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

ありがとうございましたが、質問で述べたように、私は離れてCommonJSインポート・システムから移動することはできません(すなわち、「要求する」)。インポートスタイルを変更せずに動作させる方法が必要です。 – Ludwik

+0

私は '。{A} from '/ A''構文をプロジェクトターゲティングcommonjsで問題なく使用しています - なぜそれを使用できませんか? – Amid

+0

私がインポートしようとしているファイルは主に 'module.exports'を使っているので、許容されるtypescriptモジュールであるように変更するのは面倒です。 – Ludwik

0

エクスポート=構文は モジュールからエクスポートされた単一のオブジェクトを指定します。これはクラス、インターフェイス、名前空間、関数、または enumです。 https://www.typescriptlang.org/docs/handbook/modules.html

から

だから今は空のクラスをエクスポートします。

てみファイルA.ts:

interface B {}; 
export = B; 

とC.tsファイル:

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