2016-09-25 43 views
1

我想創造一個 「應用模塊」:tnt.module.ts:Angular2 2.0.0如何添加簡單的功能@NgModule

import {NgModule} from '@angular/core'; 
import {toUpperCase} from "./tnt.utils"; 

@NgModule({ 
    declarations: [ 
    toUpperCase 
    ], 
    exports: [ 
    toUpperCase 
    ] 
}) 
export default class TntModule {} 

這裏是一個util的功能例如:tnt.utils。 TS

​​

我正在一個錯誤:

ERROR in [default] /data/2016/le-tube/src/app/shared/tnt/tnt.module.ts:5:10 
Argument of type '{ imports: undefined[]; declarations: ((str: String) => string)[]; exports: ((str: String) => str...' is not assignable to parameter of type 'NgModule'. 
    Types of property 'declarations' are incompatible. 
    Type '((str: String) => string)[]' is not assignable to type '(any[] | Type<any>)[]'. 
     Type '(str: String) => string' is not assignable to type 'any[] | Type<any>'. 
     Type '(str: String) => string' is not assignable to type 'Type<any>'. 
      Type '(str: String) => string' provides no match for the signature 'new (...args: any[]): any' 

我缺少什麼?爲什麼我不能用簡單的函數創建一個模塊?我想,我只是缺少一個簡單的細節,但我不出來...

+0

我無法從提供的信息中回答。不過,我可以建議你使用角度cli:https://github.com/angular/angular-cli,並且toUppercase在我看來是'管道'候選人。對於功能你應該使用服務。 – user3791775

+0

我正在使用angular-cli,我感謝我將建立一個服務。 – Brett

回答

0

不能從NgModule導出功能,

exports : Array|any[]>

Specifies a list of directives/pipes/module that can be used within the template of any component that is part of an angular module that imports this angular module.

瞭解更多關於它here

希望這有助於!

0

您不能從模塊導出功能。

你有兩個選擇:

1)可以創建一個utililty.ts文件,並在那裏創建你的函數被導出。

export function utlityFunction1(param1, param2) { return param1+param2;) 

你可以在你的代碼文件中像導入任何其他對象一樣導入這個函數。 2)創建一個UtilityService並將其注入到組件中。

更多關於此處https://angular.io/docs/ts/latest/guide/dependency-injection.html