我想创建一个“实用程序模块”:tnt.module.ts:
import {NgModule} from '@angular/core';
import {toUpperCase} from "./tnt.utils";
@NgModule({
declarations: [
toUpperCase
],
exports: [
toUpperCase
]
})
export default class TntModule {}
这是一个util函数示例:tnt.utils.ts
export const toUpperCase= function (str:String) {
return str.toUpperCase()
}
我收到错误:
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 :(得分:0)
您无法从NgModule导出函数,
exports:Array | any []&gt;
指定列表 指令/管道/模块,可以在任何模板中使用 组件,它是导入此角度的角度模块的一部分 模块。
详细了解here
希望这会有所帮助!!
答案 1 :(得分:0)
您无法从模块中导出功能。
您有两种选择:
1)创建一个utililty.ts
文件并在那里创建要导出的函数。
export function utlityFunction1(param1, param2) { return param1+param2; )
您可以像在任何其他对象一样在代码文件中导入此函数。
import { utilityFunction } from './utility.ts'
2)创建一个UtilityService
并将其注入您的组件。
此处有更多信息https://angular.io/docs/ts/latest/guide/dependency-injection.html