Вопросы по теме 'typescript-compiler-api'

Замените кавычки преобразователями API компилятора TypeScript.
У меня есть сценарий генерации кода TypeScript, в котором я создаю AST, а затем распечатываю его и сохраняю в файл. По умолчанию печатные строковые литералы заключены в двойные кавычки, я бы хотел иметь одинарные кавычки. Как упоминалось здесь , я...
650 просмотров

TypeScript Compiler API или языковая служба получить тип аргумента функции
Я хотел бы получить тип аргумента метода в классе, используя API компилятора машинописного текста, чтобы обеспечить завершение кода. В моем классе есть метод byId(id: sap.ui.core.ID) . Я хотел бы проверить, есть ли у метода byId () этот параметр...
699 просмотров

Как сгенерировать дополнительные символы новой строки между узлами с помощью принтера API компилятора Typescript
Когда я генерирую свой код Typescript с помощью Printer api компилятора, мой код генерируется следующим образом: namespace Something { export function foo() { ... } export function bar() { ... } } namespace...
315 просмотров
schedule 07.05.2023

Есть ли способ изменить параметр декораторов во время сборки?
У меня есть стандартное приложение Angular, и я хочу переключать некоторые компоненты во время сборки. Я хочу изменить с помощью одного ast trasformer параметры декоратора @Component следующим образом: логин.component.ts...
422 просмотров

Компилятор машинописного текста, как получить экспортированный символ по имени?
Как лучше всего получить символ для экспорта по имени? Сильфон - это функциональный код. Однако это кажется немного хрупким, поскольку я не могу получить «символ» из «sourceFile», не игнорируя систему типов. const sourceFile =...
221 просмотров
schedule 03.03.2022

API-интерфейс компилятора машинописного текста: генерация полной древовидной структуры свойств идентификатора типа
Учитывая идентификатор типа, я ищу способ сгенерировать полную древовидность объекта типа AST. Например, если у меня есть: File1.ts type Content = { title: string, image: string, dims: number[] } File2.ts type BlogPost...
329 просмотров
schedule 09.06.2022

API компилятора TypeScript применяет стандартные / встроенные преобразования для CompilerOptions в AST
Я хотел бы сделать средство проверки совместимости, например eslint-plugin-compat , но для TypeScript, чтобы оно более надежен, потому что у меня есть доступ к типам переменных. По сути, я бы хотел проверить такие вещи, как использование...
55 просмотров

Как следует использовать «кеш разрешения модулей» API компилятора TypeScript?
Я заметил, что ts.resolveModuleName имеет необязательный параметр cache и сопутствующую resolveModuleNameFromCache функцию. Я предполагаю, что они как-то связаны с кешированием разрешенных имен модулей для повышения производительности, но мне...
261 просмотров
schedule 31.07.2023

Создание SourceFile из массива операторов-узлов вместо строки
Легко создать объект SoureFile из простой строки: ts.createSourceFile(fileName, sourceText, languageVersion, setParentNodes, scriptKind) Однако я не вижу способа создать его из массива Statement -узлов (созданных различными фабричными...
298 просмотров
schedule 19.01.2023

Разрешить структуру узла типа AST –– API компилятора TypeScript
Допустим, у нас есть следующий код: interface X<Y = any> { y: Y; } interface Z extends X<"why?"> { abc: "ABC"; } /** * * Structurally, the `Z` type is... * * { * y: "why?"; * abc:...
175 просмотров

API компилятора TypeScript - извлечение типа кортежа типа объединения
Если у меня есть массив типа string[] , и я хочу извлечь этот тип из массива, я должен сделать: const typeArgs = type.typeArguments; typeArgs[0]; // string Но что, если у меня есть кортеж типа [number, string] и я хочу получить объединение...
133 просмотров
schedule 13.03.2023

API компилятора TypeScript: получить разрешенный тип возвращаемого значения универсального метода
Предположим, у нас есть общий класс или интерфейс: interface A<T> { prop1: T; func2(): T; } interface B extends A<C> { } interface C { } Нам нужно получить тип возврата метода B.func2 (не T , а C ). Способ,...
195 просмотров
schedule 14.04.2022

Параметры типа Typescript Infer с API компилятора
С помощью этого кода ( площадка ): declare class Test<P = unknown, R = unknown> { test(p: P): R; } declare class M extends Test { test(q: number): boolean; } // these lines are not in real code. This is an example of what TS //...
117 просмотров
schedule 05.01.2023

Как извлечь аргументы типа и параметры типа из псевдонимов типа, ссылки на другие псевдонимы типа?
Как можно использовать API компилятора TypeScript 4.2+ (или ts-morph 10+) для извлечения из следующего: export type A = Record<string,number> Тот факт, что экспортированный псевдоним типа A ссылка на Record и передает его string...
127 просмотров
schedule 18.06.2023

API компилятора TypeScript: как получить буквальное значение по узлу ImportSpecifier?
У меня есть два файла TypeScript. Const.ts: export const defaultProps = { name: 'Node' }; MyComponent.tsx: import * as React from 'react'; import {defaultProps} from './const'; interface MyCompProps { name: string; } export class...
29 просмотров
schedule 20.06.2022