Giải thích sự khác biệt giữa ‘declare enum’ và ‘declare const enum’?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
116 lượt xem
Typescript master
  • declare enum không tạo ra mã và mong đợi bạn đã định nghĩa mã thực ở nơi khác. Điều này không tạo ra bảng tra cứu:
    declare enum Wine { Red, Wine }
    Wine.Red tạo ra Wine.Red trong JavaScript, nhưng sẽ không có bất kỳ bảng tra cứu Wine nào để tham chiếu, vì vậy đó là một lỗi trừ khi bạn đã định nghĩa nó ở nơi khác.
  • declare const enum cũng không tạo ra bảng tra cứu:
    declare const enum Fruit { Apple, Pear }

    Nhưng nó không nội tuyến (inline)! Fruit.Apple tạo ra 0. Nhưng một lần nữa Fruit[0] sẽ xuất hiện lỗi trong runtime vì nó không được nội tuyến và không có bảng tra cứu.

{{login.error}}