2016-04-09 13 views
2

ben bu dosyayı vardı. Ben buTipler içe aktarma CommonJS Modülleri alabilir mi? Yani, benim typescript dosyasına ithal etmek istediği</p> <pre><code>//foo.js var foo = function() { return "foo"; }; module.exports = foo; </code></pre> <p>:

Çalıştırdım. Bu 'ortam' modülleri ile ilgili bilgi, bu yüzden bu

//typescript.ts 
/// <reference path="./foo.d.ts" /> 
import * as foo from ("./foo"); 

eklendi Ve icar typescript amacını türleri hakkında bilmek zorunda aynı klasörde bir "foo.d.ts" dosyasını, katma benim içe aktarılan işlev:

Hayır şans.

Sorunun içe aktarma sözdizimi ile olduğunu düşünmekteyim (es6 ve commonjs modülleri için aynı sözdizimine sahip olamazsınız, değil mi?). Ben de bunu yaptım.

import foo = require("./foo"); 

Tahmin edeceğiniz gibi, bu da işe yaramadı.

npm install d3 ile düğüm modülü olarak yüklediğimde ve d.ts dosyasını başvuruda bulunduğumda d3'ü başarılı bir şekilde kullanabildim. Bu kod ile yaptım: Ben başka bir modül ile aynı şeyi edemedik

import * as d3 from "d3"; 

(jquery, box2d, box2d-commonjs, diğerlerinin yanı sıra), ne de kendi kütüphaneleri ile yukarıda gösterildiği gibi. Ben Typescript’e yeni geldim, muhtemelen çok açık bir şeyi özlüyorum, ama bunu kendi başıma çözemedim.

+0

Sadece "" .fofo "yerine?" ./foo.js "şeklinde olmasını mı denediniz? – TAGraves

+0

Evet. Yukarıdakilerin hepsi ile. – Federico

cevap

1

Gerçekten belirgin bir şey olduğu ortaya çıktı: --allowJs seçeneğini kullanmanız gerekiyordu. Bu benim için çalıştı: d3 çalıştı neden diğerleri kütüphaneler ise etmedikleri

tsc --moduleResolution "node" --module "commonjs" --allowJs main.ts 

olsa da onu anlamaya olamaz.

İlgili konular