在 Angular 中放置独立函数的位置
Where to place standalone functions in Angular
我有这些功能,它们被 3 个组件使用。
放在哪里比较合适?
我在想 Rails 上的 Ruby。他们有lib,但我不确定lib文件夹中的这些方法是否正常。
目前在src/helpers/upload-file-helpers.ts
export function fileSizeConverter(size: number, fromUnit: string, toUnit: string ): number | string {
const units: string[] = ['B', 'KB', 'MB', 'GB', 'TB'];
const from = units.indexOf(fromUnit.toUpperCase());
const to = units.indexOf(toUnit.toUpperCase());
const BASE_SIZE = 1024;
let result: number | string = 0;
if (from < 0 || to < 0 ) { return result = 'Error: Incorrect units'; }
result = from < to ? size / (BASE_SIZE ** to) : size * (BASE_SIZE ** from);
return result.toFixed(2);
}
export function isFileMoreThanLimit(fileSize: number, fromUnit: string, toUnit: string , limit: number) {
return fileSizeConverter(fileSize, fromUnit, toUnit) > limit;
}
export function fileExtensionChecker(file: string): boolean {
const fileExtensions = {
'png' : true,
'jpg' : true,
'jpeg': true,
'stl' : true,
'obj' : true,
'zip' : true,
'dcm' : true,
'3oxz': true
};
// this is weird, instead of showing undefined if file argument is not present in the hash it will throw error.
return fileExtensions[file] ? true : false;
}
export function fileTypeParser(fileType: string): string {
return fileType.split('/')[1];
}
还有,我特意不想把这些放在一起class。这只是被单独调用。
在 TypeScript 中编写实用函数主要有两种方式:
A) 普通函数(在文件中分组)
util.ts
export function sum(a: number, b: number): number {
return a + b;
}
或
export const sum = (a: number, b: number): number=> {
return a + b;
};
用法
import { sum } from './util';
...
let value = sum(4, 11);
B) class
的静态方法
export class Math {
static sum(a: number, b: number): number {
return a + b;
}
}
参考
我有这些功能,它们被 3 个组件使用。
放在哪里比较合适?
我在想 Rails 上的 Ruby。他们有lib,但我不确定lib文件夹中的这些方法是否正常。
目前在src/helpers/upload-file-helpers.ts
export function fileSizeConverter(size: number, fromUnit: string, toUnit: string ): number | string {
const units: string[] = ['B', 'KB', 'MB', 'GB', 'TB'];
const from = units.indexOf(fromUnit.toUpperCase());
const to = units.indexOf(toUnit.toUpperCase());
const BASE_SIZE = 1024;
let result: number | string = 0;
if (from < 0 || to < 0 ) { return result = 'Error: Incorrect units'; }
result = from < to ? size / (BASE_SIZE ** to) : size * (BASE_SIZE ** from);
return result.toFixed(2);
}
export function isFileMoreThanLimit(fileSize: number, fromUnit: string, toUnit: string , limit: number) {
return fileSizeConverter(fileSize, fromUnit, toUnit) > limit;
}
export function fileExtensionChecker(file: string): boolean {
const fileExtensions = {
'png' : true,
'jpg' : true,
'jpeg': true,
'stl' : true,
'obj' : true,
'zip' : true,
'dcm' : true,
'3oxz': true
};
// this is weird, instead of showing undefined if file argument is not present in the hash it will throw error.
return fileExtensions[file] ? true : false;
}
export function fileTypeParser(fileType: string): string {
return fileType.split('/')[1];
}
还有,我特意不想把这些放在一起class。这只是被单独调用。
在 TypeScript 中编写实用函数主要有两种方式:
A) 普通函数(在文件中分组)
util.ts
export function sum(a: number, b: number): number {
return a + b;
}
或
export const sum = (a: number, b: number): number=> {
return a + b;
};
用法
import { sum } from './util';
...
let value = sum(4, 11);
B) class
的静态方法export class Math {
static sum(a: number, b: number): number {
return a + b;
}
}
参考