パーツ「bar」で構成され、dart:ioライブラリをインポートするライブラリ「foo」があります。ライブラリとパーツは、「foo.dart」で次のように宣言されています。
// in foo.dart
library foo;
import 'dart:io';
part "bar.dart"; // resolves
class Foo {
Bar bar = new Bar(); // resolves
HttpServer server = new HttpServer(); // resolves
}
「foo.dart」と「bar.dart」は同じディレクトリにあります。
'bar.dart'は、次のようにライブラリfooを参照します。
// in bar.dart
part of foo; // does not resolve
class Bar {
Foo foo = new Foo(); // does not resolve
HttpServer server = new HttpServer // does not resolve
}
しかし、Dart Editorでは、「bar.dart」に「fooを解決できません」という警告が表示されます。したがって、foo.dartで宣言したインポート('dart:io'など)はbar.dartで使用できず、foo.dartの定義も使用できません。また、bar.dartはfooの一部であるため、次のようになります。それ以上のライブラリをインポートしたり、それ以上の部分を宣言したりすることは許可されていません。
次のようにコードを整理したいと思います。*foo.dartにインポートしてbar.dart(および他のソースパーツ)で使用できるようにする*1つのライブラリソースパーツで作成されたライブラリ定義を他のライブラリソースで使用できる部品。*(明らかに)bar.dartで作成されたライブラリ定義はfoo.dartで利用できます(これはすでに期待どおりに機能します)
誰かが私がこれらを達成する方法を理解するのを手伝ってくれますか?