Tìm kiếm trang web

javascript - "Thuộc tính ** được sử dụng trước khi khởi tạo trong typescript


Tôi đã phát triển lớp mẫu như sau. Tôi đặt các biến riêng tư như sau nhưng nó trả về các lỗi sau.

"Property 'shopCode' is used before its initialization."

Tôi không thể tìm thấy nơi shopCode được sử dụng trước khi khởi tạo.

export class getIrohaTransaction {

private shopCode:string;
private TransactionId:string;

constructor(shopCode:string,TransactionId:string) {
    this.shopCode = shopCode;
    this.TransactionId = TransactionId;
}

private requestParam = {
    request: {
        apiCommonRequestHeader: {
            requestId:12345,
            serviceType: '01',
            useInterface: '3',
            shopCode: this.shopCode,
            accessInfo: {
                accessInfo1: 'PRICING',
                accessInfo2: this.shopCode,
                accessInfo3: this.shopCode,
                accessIpAddress: "127.0.0.1",
            },
        },
        transactionSearchCondition: {
            transactionid: this.TransactionId,
        },
        },
}

const result = await client.searchTransactionAsync(requestParam)
}

Tôi tự hỏi nguyên nhân gốc rễ của điều này là gì. Nếu ai có ý kiến, xin hãy cho tôi biết. Cảm ơn

Câu trả lời #1

Thử cái này private shopCode:string="";

bởi vì trong đối tượng reuqestParam bạn đang sử dụng nó trước khi khởi tạo.

Vì vậy, hoặc khởi tạo nó khi khai báo hoặc đặt strictPropertyInitialization:false (chú ý chính tả) trong tsconfig.json