У меня есть привязка FFI, и есть несколько мест, где используется void *
. Я бы хотел отличить их от стороны с машинописным текстом. Что я делаю:Как объявить два непеременных типа?
interface Struct1Ptr extends Buffer {};
interface Struct2Ptr extends Buffer {};
var x: Struct1Ptr;
var y: Struct2Ptr;
Я хотел бы, чтобы эти типы не могущий быть переданным, уступленным, цедированным, так как сигнал, что ошибка при попытке назначить x = y
или y = x
или использовать неправильный тип в качестве аргументов функций.
Теперь не присваиваемые базового класса, который может или не может быть хорошей вещью. –
Если кто-то запрашивает буфер, Struct1Ptr и Struct2Ptr назначаются ему. Противоположно, конечно, не так. Очень ожидаемый, нет? – AlexG
Довольно много, хотя мне также нужна концепция 'NULL', которая назначается как' x', так и 'y', и существует' ref.NULL' типа 'Buffer'. В основном это попытка имитировать семантику языка C в TypScript. –