Hãy nói rằng chúng ta có ví dụ đơn giản này:nguyên cảo: loại an toàn cho tài sản giao diện trong phần khai báo hàm
interface Steps {
stepOne?: boolean;
stepTwo?: boolean;
stepThree?: boolean;
}
let steps: Steps = {};
function markStepDone (step: ???) {
steps[step] = true;
}
markStepDone('anything');
Làm thế nào tôi có thể ngăn chặn nó cho phép để vượt qua 'gì' để chức năng này và chỉ cho phép [ 'stepOne ',' stepTwo ',' stepThree ']?
Tôi cũng đã cố gắng để làm điều đó với enum, nhưng hóa ra là bạn không thể sử dụng enum như một chữ ký số ...
Cảm ơn bạn! Cho đến khi 'keyof' ra ngoài, tôi đã làm một cái gì đó như thế này: ' loại AllSteps = 'stepOne' | 'stepTwo' | 'bước thứ ba'; Giao diện Các bước { [chỉ mục: chuỗi]: boolean; } chức năng markStepDone (bước: AllSteps) {' – Sergey