t27.aiEnglish

pub или закрытое имя

Вы узнаете

Что объявляет pub и что пишет бэкенд TypeScript с ним и без него.

pub перед const, fn, struct или enum говорит, что имя могут использовать другие модули. Без pub имя предназначено самому модулю. Сегодня компилятор не соблюдает это в коде, который пишет: gen-ts экспортирует и pub-константу, и закрытую константу спеки урока. Используйте pub, чтобы сказать, что модуль предлагает, и читайте сгенерированный код, прежде чем полагаться на закрытость.

Попробуйте

Откройте вкладку ts спеки урока в плеере и найдите обе константы.

Открыть интерактивный урок →

t27 basics 16: what pub changes in the generated code
t27 basics 16: what pub changes in the generated code ↗

A pub and a private t27 constant side by side with the TypeScript the real compiler wrote for each. Lesson 16 of the t27 basics course.

specs/basics/16_pub_or_private.t27

// SPDX-License-Identifier: Apache-2.0
; t27 basics, lesson 16: pub or private.
; pub marks a name for other modules; without it the name is the module's own.

module basics_16_pub_or_private;

pub const OFFERED : u8 = 1;
const OWN : u8 = 2;

test both_names_exist_in_the_module {
    assert OFFERED == 1;
    assert OWN == 2;
}

Открыть спеку урока в плеере ↗

Все уроки