在Firebase云函数和Angular之间共享TypeScript类,可以通过以下步骤实现:
首先,创建一个新的TypeScript库项目:
mkdir shared-library
cd shared-library
npm init -y
npm install typescript --save-dev
npx tsc --init
在src
目录下创建一个共享类文件,例如user.ts
:
// src/user.ts
export class User {
constructor(public id: string, public name: string, public email: string) {}
getFullName(): string {
return `${this.name}`;
}
}
在tsconfig.json
中配置输出目录:
{
"compilerOptions": {
"outDir": "./dist",
"rootDir": "./src",
"target": "es5",
"lib": ["dom", "es2015"],
"module": "commonjs",
"declaration": true,
"sourceMap": true
}
}
然后构建库:
npx tsc
如果需要发布到npm,可以执行:
npm publish
在Angular项目中安装共享库:
npm install ./path/to/shared-library
然后在Angular组件中使用:
// src/app/app.component.ts
import { Component } from '@angular/core';
import { User } from 'shared-library';
@Component({
selector: 'app-root',
template: `<h1>{{ user.getFullName() }}</h1>`
})
export class AppComponent {
user = new User('1', 'John Doe', 'john.doe@example.com');
}
在Firebase云函数项目中安装共享库:
npm install ./path/to/shared-library
然后在云函数中使用:
// functions/index.ts
import * as functions from 'firebase-functions';
import { User } from 'shared-library';
export const helloWorld = functions.https.onRequest((request, response) => {
const user = new User('1', 'John Doe', 'john.doe@example.com');
response.send(`Hello, ${user.getFullName()}!`);
});
npm ls
检查依赖树,解决冲突。通过以上步骤,你可以在Firebase云函数和Angular之间共享TypeScript类,提高代码复用性和维护性。
领取专属 10元无门槛券
手把手带您无忧上云