Şu anda Type6'ya geçiş yaptığım ES6'da yazılmış bir React projem var. import
ifadeleri ile sorun yaşıyorum.React ES6'yı TypeScript'e Geçiş: İçe aktarma ifadeleri çalışmıyor
Şu anda ES6 ile NPM, npm install react
kullanarak React bağımlılıkları kurdum ve bir çıkış ES5 paketi oluşturmak için Browserfy ile Babel'i kullanın. (Browserify Kullanılması Sadece TS projesi ile çalışan almak için çalışıyorum, bir gereklilik değildir.)
Tipik ES6 dosya şuna benzer tepki:
import React from "react"
import {Router, Route, Link} from "react-router"
import Button from "./components/Button"
export default class App extends React.Component {
render(){
// ...
}
}
TS taşınırken, ben yükledim TSC module: "commonjs"
ve jsx: "react"
set tsd install react/
kullanarak tüm tepki bağımlılıkları için d.ts
dosyaları *.tsx
için *.jsx
birkaç dosya dönüştürülür ve ben bu import
tablolarda derleme hatası alıyorsunuz:
Error:(1, 8) TS1192: Module '"react"' has no default export.
import Button
ifadesi hata veriyor. TSC, NPM modül bağımlılıklarını çözemiyor gibi görünüyor.
Bunu nasıl çalıştırabilirim? ile
Teşekkürler, bu işe yarıyor. Hala ne fark olduğu hakkında biraz sisli. 'Tepki-yönlendiriciden' {Router, Route, Link} ne hakkında? Bunu yapmanın bir yolu var mı? – Aaron
Kabul edildi. :) Yine de biraz kafam karışmıştı ... bu yüzden, çünkü '' as' gereklidir, çünkü 'd.ts'' export = 'kullanır, fakat bunun ithal edilen ES6'nın ihracat varsayılanına eşdeğer olduğunu düşünmüştüm 'import '' reakt '' ifadesinden yararlanarak? Babel/Browserify ile neden çalıştığı bana açık değil ama semantikleri TSC ile değişti. Modüllerin nasıl çözüldüğünün farkı nedir? – Aaron
Ayrıca 'ReactRouter.Router' sözdizimi hakkında emin değilim. Mevcut JS kodu "Router" olarak çalıştı, böylece ReactRouter olarak içe aktarma * çalışma zamanında nasıl çalışacak? – Aaron