Tìm kiếm trang web

typescript - làm thế nào để thay đổi thuộc tính thành giá trị tĩnh đã sử dụng trong lớp?


class Parent {
    currentStatus: 'a' | 'b' | 'c';
}

class Test extends Parent {
    public static status = {
        a: 'a',
    };
    constructor() {
        super();
        this.currentStatus = Test.status.a;
    }
}

Tôi nên làm điều đó như thế nào?

Tôi muốn đặt giá trị vào CurrentStatus.

Câu trả lời #1

Tôi muốn đặt giá trị vào CurrentStatus.

Lỗi xảy ra vì chúng ta không thể gán một kiểu string cho một kiểu hợp nhất literal chuỗi của 'a' | 'b' | 'c'.

Bạn có thể sử dụng as const để đảm bảo rằng Test.status.a là kiểu literal chuỗi 'a', nằm trong miền của 'a' | 'b' | 'c', thay vì bị mở rộng thành kiểu string, vốn nằm ngoài miền.

class Parent {
    currentStatus: 'a' | 'b' | 'c';
}

class Test extends Parent {
    public static status = {
        a: 'a' as const,
    };

    constructor() {
        super();
        this.currentStatus = Test.status.a;
    }
}