Я понимаю, что это несколько неясное, но, возможно, кто-то еще столкнулся с этим или хорошо знает компилятор. Я обрабатываю машинопись файлы с помощью компилятора API машинопись, основанный на примерах, как это: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-APIКак вы используете Typechecker компилятора Typcript для получения объявленного (псевдонима) типа, а не разрешенного типа?
Представьте меня объявленную функцию, как это в машинописном:
export type DateString = string;
export function parseDate(date: DateString): Date{
let parsedDate = Date.parse(date);
let retVal = new Date();
retVal.setTime(parsedDate);
return retVal;
}
В примерах, связанных выше, вы можете увидеть такие методы, как это определено для извлечения информации о символах:
function serializeSymbol(symbol: ts.Symbol): DocEntry {
return {
name: symbol.getName(),
type: checker.typeToString(checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration))
};
}
При запуске checker.typeToString(checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration)
на date: DateString
символ, вместо возвращения DateString
, она возвращает string
. Другими словами, вы не получаете объявленный псевдоним типа, а полностью разрешенный тип. В моем случае я хотел бы знать, что тип поля date
: DateString
. Есть ли простой способ поиска объявленного типа параметра, а не его разрешенного типа?
Wow David! Какой отличный ответ. Очень признателен. И ваша библиотека выглядит великолепно. Время, чтобы вырваться из моего доморощенного решения, чтобы сделать все это. :) – Taytay