সেশন স্টোরেজে আমার কাস্টম ডেটা ব্যবহারের অনুমতি দেওয়ার জন্য আমি এক্সপ্রেস সেশন টাইপগুলি প্রসারিত করতে চাই। আমার একটি বিষয় আছে req.session.user
যা আমার শ্রেণীর উদাহরণ User
:
export class User {
public login: string;
public hashedPassword: string;
constructor(login?: string, password?: string) {
this.login = login || "" ;
this.hashedPassword = password ? UserHelper.hashPassword(password) : "";
}
}
সুতরাং আমি own.d.ts
বিদ্যমান এক্সপ্রেস সেশন টাইপিংয়ের সাথে সংজ্ঞা সংহত করতে আমার ফাইল তৈরি করেছি :
import { User } from "./models/user";
declare module Express {
export interface Session {
user: User;
}
}
তবে এটি মোটেও কাজ করছে না - ভিএস কোড এবং টিএসসি এটি দেখতে পাবে না। সুতরাং আমি পরীক্ষার সংজ্ঞাটি সাধারণ ধরণের দিয়ে তৈরি করেছি:
declare module Express {
export interface Session {
test: string;
}
}
এবং পরীক্ষার ক্ষেত্র ঠিকঠাক কাজ করছে, তাই আমদানির কারণ সমস্যা।
আমি /// <reference path='models/user.ts'/>
পরিবর্তে আমদানি করার চেষ্টা করেছি কিন্তু টিএসসি ব্যবহারকারীর ক্লাসটি দেখেনি - আমি কীভাবে * d.ts ফাইলটিতে নিজের ক্লাসটি ব্যবহার করতে পারি?
সম্পাদনা: সংকলনে সংজ্ঞা ফাইল উত্পন্ন করতে আমি টিএসসি সেট করেছিলাম এবং এখন আমার ইউজার.ডি.এস.টি.
export declare class User {
login: string;
hashedPassword: string;
constructor();
constructor(login: string, password: string);
}
এবং এক্সপ্রেস সেসিয়ান বাড়ানোর জন্য নিজস্ব টাইপিং ফাইল:
import { User } from "./models/user";
declare module Express {
export interface Session {
user: User;
uuid: string;
}
}
শীর্ষে আমদানি বিবৃতি যখন এখনও কাজ করছে না। কোন ধারনা?