2017-02-02 1 views
1

ジェネリックメソッドに問題があります。 例を作成するために、WebStormでAngular2を使って新しいプロジェクトを生成しました。 私はダーツ1.22.0-dev 10.1を使っていますが、ダーツ1.21.1でも問題がありました。 私はapp_component.dartファイル内の単一のクラスを追加しました:ダーツ:ジェネリックメソッドが動作しない

import 'package:angular2/core.dart'; 
import 'package:angular2_components/angular2_components.dart'; 

import 'package:deleteMe/hello_dialog/hello_dialog.dart'; 

@Component(
    selector: 'my-app', 
    styleUrls: const ['app_component.css'], 
    templateUrl: 'app_component.html', 
    directives: const [materialDirectives, HelloDialog], 
    providers: const [materialProviders], 
) 
class AppComponent { 
    // Nothing here yet. All logic is in HelloDialog. 
} 


class abc { 

    T foo<T>(T value) { 
    return value; 
    } 
} 

アナライザはエラーをスローしませんが、私は例を実行しようとすると、私はパブから次のエラーを取得:

[DirectiveProcessor]: 
    Failed with 4 errors 
Error 1: line 23, column 5 of lib\app_component.dart and parts: Expected to find ';' 
    T foo<T>(T value) { 
    ^^^ 
Error 2: line 23, column 8 of lib\app_component.dart and parts: Expected a class member 
    T foo<T>(T value) { 
    ^
Error 3: line 23, column 8 of lib\app_component.dart and parts: Unexpected token '<' 
    T foo<T>(T value) { 
    ^
Error 4: line 23, column 10 of lib\app_component.dart and parts: Operator declarations must be preceeded by the keyword 'operator' 
    T foo<T>(T value) { 
     ^
Build error: 
Transform DirectiveProcessor on deleteMe|lib/app_component.dart threw error: Error in lib/app_component.dart and parts: Expected to find ';' 

Error in lib/app_component.dart and parts: Expected a class member 

Error in lib/app_component.dart and parts: Unexpected token '<' 

Error in lib/app_component.dart and parts: Operator declarations must be preceeded by the keyword 'operator' 

package:analyzer/analyzer.dart 116         _parseSource 
package:analyzer/analyzer.dart 44         parseCompilationUnit 
package:angular2/src/transform/directive_processor/rewriter.dart 31 createNgMeta.<async> 
dart:async-patch/async_patch.dart 27         _asyncThenWrapperHelper.<fn> 
dart:async/zone.dart 1158           _rootRunUnary 
dart:async/zone.dart 1037           _CustomZone.runUnary 
dart:async/future_impl.dart 131          _FutureListener.handleValue 
dart:async/future_impl.dart 637          _Future._propagateToListeners.handleValueCallback 
dart:async/future_impl.dart 667          _Future._propagateToListeners 
dart:async/future_impl.dart 467          _Future._complete 
dart:async/future_impl.dart 52          _SyncCompleter.complete 
package:angular2/src/transform/common/logging.dart 27    logElapsedAsync.<async> 
dart:async-patch/async_patch.dart 27         _asyncThenWrapperHelper.<fn> 
dart:async/zone.dart 1158           _rootRunUnary 
dart:async/zone.dart 1037           _CustomZone.runUnary 
dart:async/future_impl.dart 131          _FutureListener.handleValue 
dart:async/future_impl.dart 637          _Future._propagateToListeners.handleValueCallback 
dart:async/future_impl.dart 667          _Future._propagateToListeners 
dart:async/future_impl.dart 477          _Future._completeWithValue 
dart:async/future_impl.dart 528          _Future._asyncComplete.<fn> 
dart:async/zone.dart 1150           _rootRun 
dart:async/zone.dart 1026           _CustomZone.run 
dart:async/zone.dart 953            _CustomZone.bindCallback.<fn> 
dart:async/schedule_microtask.dart 41        _microtaskLoop 
dart:async/schedule_microtask.dart 50        _startMicrotaskLoop 
dart:isolate-patch/isolate_patch.dart 96        _runPendingImmediateCallback 
dart:isolate-patch/isolate_patch.dart 149       _RawReceivePortImpl._handleMessage 

package:analyzer/analyzer.dart 116         _parseSource 
package:analyzer/analyzer.dart 44         parseCompilationUnit 
package:angular2/src/transform/directive_processor/rewriter.dart 31 createNgMeta.<async> 
dart:async               _SyncCompleter.complete 
package:angular2/src/transform/common/logging.dart 27    logElapsedAsync.<async> 
+0

1.22.0に更新してみませんか? Angular2で使用されているアナライザーのバージョンがまだ汎用メソッドをサポートしていない場合、私は驚くことはありません。ダート1.22.0と角度3.0.0-alpha –

+0

私は1.22.0とAngular2 3.0.0-alphaを試しましたが、まだ問題は残っています。 –

+0

https://github.com/dart-lang/angular2/issuesにバグレポートを作成することをお勧めします –

答えて

3

Angular2はまだ一般的な方法をサポートしていません - そのサポートなしでアナライザのバージョンに依存しています。 3.0.0ブランチの将来のリリースでそれを探してください。

関連する問題