Тип компилятора Typescript для класса - PullRequest
0 голосов
/ 24 августа 2018

Я работаю над компилятором TypeScript и у меня есть тип: я ищу класс для типа: я ожидал, что утилита в checker.js или binder.ts будет называться что-то вроде «classToType».Мне нужен тип для фактического класса (номинальный, а не структурный).

Есть ли такая утилита?Если нет, то какие-либо рекомендации о том, как это сделать?

Моя общая цель - заставить личные имена быть номинальными и не наследуемыми, и я пытаюсь использовать этот подход,В псевдокоде:

in checker.js::getPropertyOfType: if the propery is a private name and the type is not the containing class: then return undefined

1 Ответ

0 голосов
/ 26 августа 2018

Вы можете использовать getClassLikeDeclarationOfSymbol(type.symbol). Эта функция определена в compiler/utilties.ts.

Но это не единственный способ достижения цели не допустить структурной типизации для классов с частными именами. Другой способ - проверять личное имя при добавлении объявления к символу, добавлении нового SymbolFlag и проверке флага символа в getUnmatchedProperty.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...